Открих хитър трик за разработка, докато работех за стартиращ бизнес преди известно време. Индия не е най-великата, когато става въпрос за скорост на интернет и стабилност на мрежата. Така че имахме тези удължени фази на мрежови проблеми ежедневно, което всъщност ни принуждаваше да работим офлайн. За моя изненада разбрах, че пиша по-добър код по този начин. как?

Ето откъс от отговора на Томас Кормен в Quora на въпроса Как се промени преподаването на компютърни науки през последните 30 години(Пълен отговор тук).

Когато взех първия си курс по CS като първокурсник в Принстън през 1974 г., трябваше да напиша моите Fortran програми върху перфокарти и да заредя картите в бункер. Известно време по-късно щях да получа разпечатка от линейния принтер и щях да видя моята програма и нейния изход. IBM 360/91 в Принстън беше настроен така, че ако вашата програма Fortran (или PL/I, 360 Assembler или Snobol) отнеме под 2 CPU секунди, тя може да бъде в пакет, който ще се изпълнява на всеки 20 минути. В противен случай то се присъединява към опашката със задачи и може да не се изпълнява с часове.

Всяко изпълнение на програма беше ценно. Представете си, че ако щях да прекарам пет часа в компютърния център, тогава щях да получа най-много 15 ръна. Компилаторите бяха героични. Принстън използва компилатора Watfiv Fortran и аз се шегувам, че ако захраните този компилатор с текста на Moby Dick, той ще се опита да извика функция ME с параметър ISHMAEL.

Тъй като всяко изпълнение на програма беше ценно, когато програмата ми не работеше правилно, трябваше да взема изхода си и да го прегледам методично, симулирайки програмата ред по ред, докато разбера къде е грешката. Накара ме наистина да разбера програмите си.

Сега знаех отговора. Това, че съм офлайн и не изпълнявам кода си след всяка малка промяна, всъщност направи моите архитектурни и дизайнерски решения по-добри. Оттогава си направих практика да устоявам на желанието да натисна този бутон за стартиране и да напиша значителна част от кода, преди да пусна браузъра, за да го тествам. Като цяло сега започвам с писане на различни класове, празни методи за контейнери и след това по-късно преминавам към имплементацията на всеки метод, след като съм доволен, че пиша добра архитектура. Един добър тест, който работи за мен, е, че ако мога да изградя не твърде сложен умствен модел около това, което съм написал, това означава, че програмата е написана добре. Отлагам стартирането на приложението дотогава и се оказва, че програмите ми най-често работят с малко грешки. Също така помага, ако не бързам, за да видя дали нещата вървят добре. Естествена тенденция е да коригирате грешките, след като стартирате приложението, вместо да се фокусирате върху дизайна и архитектурата. Никой не се връща към него след стартиране на програмата. Сега понякога нарочно изключвам мрежата, докато пиша програми. И с времето увеличих значително количеството работен код, който мога да напиша, без да стартирам Chrome. Резултатът е по-щастлив разработчик на софтуер.

Така че давай. Устояйте на желанието да натиснете бутона Run. Не задействайте този браузър, за да видите дали работи и просто напишете код, по старомодния начин ;)