← All posts tagged programming

Пишу тонну factory-бойлерплейта, но понимаю, что читающий может быть
слишком шокирован, потому заставляю себя "пока-что-ненужные" вещи
писать напрямую. Possible-cultural-misunderstanding-driven
development.

Прочёл на выходных "Clean Coder" Мартина (вместо Clean Code, случайно). Так быстро я книги по около-программированию еще не читал никогда (240 страниц за два небольших присеста). Конечно, молодец дядька, но вместо чтения книги я бы посоветовал просто глянуть два его спича на railscon (есть на ютубе). Одно, кажется, "What Killed Smalltalk and Can Kill Ruby", а другое — "Architecture the Lost Years".

Новый pep8.py считает, что "продолжения линий" должны быть кратны 4м. То есть, lisp/emacs-style продолжения, выравнивающиеся по началу открытия скобочки/словаря идут нафиг. Впринципе, я давно хотел от них отказаться (в пользу любителей альтернативных емаксу редакторов), но не было стимула. Теперь есть, синеньким подсвечиваются.

Блин, вот казалось бы, всего одна сущность (но новая), а я создал на неё целое ПРИЛОЖЕНИЕ (django). Прошёл всего день, а я уже просто счастлив что поступил именно так (а не тупо впихнул её куда-то). Уже пухнет и бизнес-логика и всё остальное. ^_____^

Всё чаще применяю паттерн, который вытягивает действия над объектами "наверх". То есть передаю функции дополнительным параметром некоторую очередь (прокидываю её вниз), и где-то в низах, вместо действия, кладу объекты в эту очередь. И уже наверху над ними что-то делаю.

Чем-то напоминает борьбу с присваиванием (точнее его полная замена) при помощи "бесконечных генераторов" из SICP.

В следующий раз, когда мне нужно будет в базе данных что-то вроде алгебраических типов, лучше я придумаю как это всё запихать в одну табличку и потом автоматически буду разруливать при выборке, чем буду снова мучаться с базовой табличкой и связями к остальным. Настолько сильно всё усложняют, что аж злость берёт.

И всё же, не знаю, что я делал раньше без блокнотика. А точнее знаю — постоянно попадал в ситуацию "кучу всего сделал, кучу времени потратил, но всё в разобраном состоянии, а собрать обратно не смогу, проще попробовать сделать заново". Теперь хотя бы есть длинный список с тем, чего еще осталось.

Всё не могу понять — вот бывает сложная логика валидации формы, например, требующая проверить, является ли пользователь активным (не забанил ли его админ), или же что-то еще сложнее (требующее какой-то кусок бизнес-логики).

Так вот не могу я понять того, почему все эти формы (django-forms) не рассчитаны на приём объектов (а не только тупых полей с текстом и числами всякими). То ли необходимо форму действительно держать на уровне данных (то есть самому, например, у пользователя брать is_active и передавать как поле формы), то ли просто никто об этом не думает (то ли я еще где-то не понимаю форм).

А еще блокнотик хорош тем, что можно вернуться после выходных и вспомнить, на чём ты остановился и какие функции не заимплементил. Раньше эту роль выполнял функциональный тест, и получалось что-то вроде "ну блин, что еще я забыл?".

В последние несколько дней очень подсел на использование блокнота (tomboy) как помощника в программировании: фокусируешься на задаче / методе, который пишешь, а если надо чего-то даже минимальное зарефакторить, или не забыть миграцию добавить, или тестом покрыть что-то новое — просто дописываешь в заметку (снова таки, в виде стека). Очень удобно, мозг вообще не отвлекается. Думаю, правда, может в емакс перенести эту заметку, чтоб не переключаться, но тогда и буферов возможна нехватка, так что еще подумаю.

Как люди вообще могут продолжать пользоваться google code? До сих пор загадка для меня. Видимо, он больше всех даёт чувство "ну с этого я точно в любой момент могу спрыгнуть".

Начал читать SICP. Вступление очень сильное, прям пробирает (и показывает, что знания твоего английского находятся на уровне в лучшем случае лондонского голубя). Сразу же вбивают в тебя дух Ъ-Lisp, даже при слабом понимании их потока сознания у них это получается просто прекрасно.

Ну а потом.. потом первая глава, там дела попроще, там и остановился пока.

У меня одного в PDF по ссылке полнейшее ШГ? Кто специалист, это автор наркоман или нужен специальный шрифт? А то глаза болят, а другого источника об Property-Based Testing где почитать не вижу nob.cs.ucdavis.edu

Можно сказать, что передача везде одного толстого объекта cfg в качестве аргумента, когда остальные что надо то из него и возьмут — в каком-то смысле развитие парадигмы "Stringly Typed" stackoverflow.com

короче очень сложно чужой код с этой штукой читать как-то, что ли