← All posts tagged programming

kb
ЖЖ programming Пишу тонну factory-бойлерплейта, но понимаю, что читающий может быть
слишком шокирован, потому заставляю себя "пока-что-ненужные" вещи
писать напрямую. Possible-cultural-misunderstanding-driven
development.
kb
ЖЖ programming Прочёл на выходных "Clean Coder" Мартина (вместо Clean Code, случайно). Так быстро я книги по около-программированию еще не читал никогда (240 страниц за два небольших присеста). Конечно, молодец дядька, но вместо чтения книги я бы посоветовал просто глянуть два его спича на railscon (есть на ютубе). Одно, кажется, "What Killed Smalltalk and Can Kill Ruby", а другое — "Architecture the Lost Years".
kb
Python programming Новый pep8.py считает, что "продолжения линий" должны быть кратны 4м. То есть, lisp/emacs-style продолжения, выравнивающиеся по началу открытия скобочки/словаря идут нафиг. Впринципе, я давно хотел от них отказаться (в пользу любителей альтернативных емаксу редакторов), но не было стимула. Теперь есть, синеньким подсвечиваются.
kb
ЖЖ programming Блин, вот казалось бы, всего одна сущность (но новая), а я создал на неё целое ПРИЛОЖЕНИЕ (django). Прошёл всего день, а я уже просто счастлив что поступил именно так (а не тупо впихнул её куда-то). Уже пухнет и бизнес-логика и всё остальное. ^_____^
kb
programming Всё чаще применяю паттерн, который вытягивает действия над объектами "наверх". То есть передаю функции дополнительным параметром некоторую очередь (прокидываю её вниз), и где-то в низах, вместо действия, кладу объекты в эту очередь. И уже наверху над ними что-то делаю.

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

Так вот не могу я понять того, почему все эти формы (django-forms) не рассчитаны на приём объектов (а не только тупых полей с текстом и числами всякими). То ли необходимо форму действительно держать на уровне данных (то есть самому, например, у пользователя брать is_active и передавать как поле формы), то ли просто никто об этом не думает (то ли я еще где-то не понимаю форм).
kb
ЖЖ programming А еще блокнотик хорош тем, что можно вернуться после выходных и вспомнить, на чём ты остановился и какие функции не заимплементил. Раньше эту роль выполнял функциональный тест, и получалось что-то вроде "ну блин, что еще я забыл?".
kb
ЖЖ programming В последние несколько дней очень подсел на использование блокнота (tomboy) как помощника в программировании: фокусируешься на задаче / методе, который пишешь, а если надо чего-то даже минимальное зарефакторить, или не забыть миграцию добавить, или тестом покрыть что-то новое — просто дописываешь в заметку (снова таки, в виде стека). Очень удобно, мозг вообще не отвлекается. Думаю, правда, может в емакс перенести эту заметку, чтоб не переключаться, но тогда и буферов возможна нехватка, так что еще подумаю.
kb
programming Как люди вообще могут продолжать пользоваться google code? До сих пор загадка для меня. Видимо, он больше всех даёт чувство "ну с этого я точно в любой момент могу спрыгнуть".
kb
ЖЖ Lisp programming Начал читать SICP. Вступление очень сильное, прям пробирает (и показывает, что знания твоего английского находятся на уровне в лучшем случае лондонского голубя). Сразу же вбивают в тебя дух Ъ-Lisp, даже при слабом понимании их потока сознания у них это получается просто прекрасно.

Ну а потом.. потом первая глава, там дела попроще, там и остановился пока.
kb
programming У меня одного в PDF по ссылке полнейшее ШГ? Кто специалист, это автор наркоман или нужен специальный шрифт? А то глаза болят, а другого источника об Property-Based Testing где почитать не вижу nob.cs.ucdavis.edu
kb
programming Можно сказать, что передача везде одного толстого объекта cfg в качестве аргумента, когда остальные что надо то из него и возьмут — в каком-то смысле развитие парадигмы "Stringly Typed" stackoverflow.com

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