воскресенье, 12 февраля 2012 г.

Сказ про то как Ходжа Нассредин время добывал.

Привет.


Как некоторые знают, в последнее время у меня начались сильные проблемы со временем. В частности, его перестало хватать на написание личных проектов. Тем не менее, продолжая писать код, стал замечать довольно сильные изменения в стиле работы и моем отношении к ней. Итак для примера берем проект, который в данный момент переживает свою 2ю полноценную инкарнацию и наверное 5ю минорную. Суть проекта все таже, изменялись только технологии и в последнее время подход к делу.

Как же происходил процесс работы когда я имел достаточно времени?

Постоянно открыт твиттер(до этого были rss фиды). Как следствие переодически открывались статьи и начиналось все что угодно но только не программирование. Я постоянно жил под влиянием серебрянных пуль, прочитаешь статью и чувствуешь, что отстаешь и надо бежать догонять.Проект как правило начинался с долгого выбора на чем же писать: рельсы рельсы, шпалы, шпалы, джанги, питоны, хаскели, ерланги, го, ноде жс и т.д. и т.п. Составлялись майнд мапы и делался тщательный анализ как правило заключавшийся в том чтобы найти причины, почему я должен использовать очередную серебрянную пулю а ля хаскель. И так по каждому пункту от фреймворков до бд.За этим ачинался процесс работы над проектом. Все шло строго сверху-вниз и выливалось в нехилый оверенжениринг. То мне надо ddd, то dddd, то акторы, то mq, то еще что. Архитектура тщательно обдумывалась, отвергалась и
изменялась. Далее обычно поднимался сервер и настраивался енвайронмент типа для CI и итеративного программирования. Создавался проектана битбакете или ассембле. Выбиралась IDE или очередной крутой текстовый редактор. Наконец мы дошли до разработки. Как правило если проект на c# то создавалась гигантская доменая модель и мильон интерфейсов и т.п. Если же проект на каком-нибудь хаскель или го, nо начиналась ебата по поиску библиотек или написанию своих для инфраструктуры. Тратилось гигантское время на изучение самих текстовых редакторов, языков и т.п. Все это безусловно было полезно с точки зрения образования, но бесполезно с точки зрения достижения целей. В силу того, что все эти действия, описанные выше, съедали кучу времени и на написания кода оставалось черезвычайно мало времени, поэтому сам код писался, через поиск в гугле и копи пастой. Когда, что-то не работало то пытался найти быстрый воркараунд в простонародье именуемый костылем. Каждая проблема сопровождалась легкой депрессией, ведь как правило код писался в свободное от работы время и по сути отнимал отдых. Каждая задержка была серпом по яицам. В конце концов я полностю терял оптимизм и  интерес.

А теперь рассмотрим текущую ситуацию. В данный момент, у меня с трудом набирается 15 минут свободного времени, по вечерам, на программирование. Первое отличие: я вообще перестал читать информацию из интернет посвященную программированию. Никакого пуша, только поиск по конкретным вопросам. Второе: я перестал отвлекаться, так как нет особого смысла садиться программирвоать 15 минут и параллельно что-либо читать. Вместо этого, я или серфю или пишу код. То есть, все стало раздельно, никакого смешения. Cтал прагматичен в выборе тулов и языков. В данном проекте, я думал над выбором 5 минут.
Изначальные требования: интерактивность разработки (устал я от компиляций и т.п.) простота, большой код бейс на интеграцию с сайтами рунета аля мейл ру, вк, платежные системы, наличие библиотек для обработки текста. Учитывались и личные предпочтения. Под эти критерии подошел только питон с джангой. Да да, я все его ругаю, но раз за разом возвращаюсь к нему.

Главное изменение в программировании это разработка снизу вверх. Я теперь стартуя проект, пишу его в IDLE без всяких редакторов и т.п. Начинаю с инфраструктуры, то есть в моем случае работа с различными внешними апи. Я с консоли все пробую, как получилось
пишу простенький АПИ сохраняю в файл, кидаю в дропбокс. Уже на втором этапе, когда я дохожу до сайта, я беру тектовый редактор, git и начинаю уже интеграцию всего этого кода в общую структуру. Раньше я пытался быстро сделать рабочий прототип и ждать когда на меня посыпятся деньги, то теперь я вообще не читаю стартап шит, и меееедлееенно делаю проект который возможно даже не имеет перспектив. Но зато делаю его хорошо и с наслжадением самим процессом создания. Депрессия исчезла.

Можно писать еще долго, но я ограничусь краткой суммой: разрабтка снизу вверх, неторопливость, прагматичность, не

смешивание различных режимов работы.

Комментариев нет:

Linux.org.ru News

Вебпланета - все новости

CNews - Издание о высоких технологиях