29 Jul
Тэги: django, Бизнес, Программирование, Софт, аутсорсинг, фреймворки, фриланс, язык, php, python, ror
Тормоз задал вопрос, что нового у меня с Python+Django, которые я нахваливал раньше. Отвечаю.
Внимание! Точка зрения у меня — как у небольшого независимого предпринимателя, которому надо, чтобы веб-проект начал жить. Для программиста и прочих сторон проблема однозначно может видеться по-другому.
Я переносил существующий сайт на фреймворк, поэтому надо было решать кое-какие задачи так и именно так, и вот тут я сполна вкусил говнеца. Всего вспомнить не могу, но, например, в голове засел импорт начальных данных из SQL-дампа там чисто номинальный, без соблюдения требования SQL — импорт валится на самых детских вещах, я просто руками правил дамп от безысходности.
Или: если в админке данные выбираются из более чем 2х таблиц — джойна НЕ будет!!! Например, если вы смотрите таблицу компаний, в которой выводится город и область, и компании, города и области лежат в 3х таблицах (что, собственно, абсолютно корректно с т. з. дизайна баз), админка будет делать бешенное кол-во запросов вместо одного джойна! Это просто эпический идиотизм, к которому добавляет жару то, что создатели вроде и думали над проблемой, даже создали опцию list_select_related, но… она будет работать только в случае 2х таблиц.
Смешно после этого слушать вату про высокий уровень пайтон-программистов, да такие же раздолбаи там, как и везде.
Новости спонсоров блога
Нахера, спрашивается, фреймворк нужен? Фреймворк нужен только для реализации простейших контентных сайтов.
Например, всякие там аппы из коробки — чистой воды фикция, чуть какая фича нужна (я имею в виду обычные общепринятые фичи) — надо либо искать альтернативные аппы, либо форкать существующие (часто — тупиковый путь), либо писать свои.
Да, кстати — намертво убило то, что кое-какие вещи вообще сделаны на авось. Например, хвалённые модели данных автоматически превращаются в структуру базы данных только на момент инициализации базы. А что же дальше? Мы, возрадовавшись тому, что о базе данных нам думать больше не надо (ну, в простых проектах, с простыми запросами), начисто теряем навык ковыряния ненавистного Мускула. И вот нам неожиданно нужно изменить чуть-чуть размер текстового поля, или мы вздумали добавить новое поле. Авторы Джанго считают, что на этом этапе опасно лезть в живую базу данных, и предлагают менять всё… ручками. Т. е. расчехлять всякие там PHPMyadmin-ы, SQLYog-и, и лезть под «капот». Забота о безопасности данных выглядит как беспомощная ложь.
В какой-то момент войны с несуразностями и генетическими пороками Джанги понял, что у меня нет программистской усидчивости, заленился, и просто отдал всё сложное программирование фрилансерам. См. следующий пункт.
Кстати — если кто-то имеет очень большой опыт по работе с фрилансерами, и может указать на мои ошибки в частности — почему у меня такая низкая откликаемость кандидатов на объявления), помогите, пожалуйста. Поделитесь опытом.
На практике большинство откликнувшихся — свитчеры с PHP, которые сами-то ещё не разобрались, или люди-оркестры (которые заявляют, что работают с 10 фреймворками). Однако специфика Джанги такова, что чуть что — нужно знать глубинные фишки и делать всякие хаки, а вот этого как раз почти ни у кого из кандидатов нет.
Тем более, что за последние годы на всех языках уже появились аналоги лучшего из ROR и Django.
Очень хорошо вымывает из мозга центризм на инсрументах лекция «Костыли — это кошерно!» Трансгуманиста:
Обязательно гляньте всю, никакого говножуйства и ваты, только очень здравые идеи. Вот тезисы, которые мне очень понравились:
Кстати, именно поэтому я ещё плотнее начал мониторить тему облачных веб-хостингов, как простых в обслуживании и масштабировании.
Несколько с другой стороны поучительна статья о том, как всё сделано у Пленти оф Фиш (там вообще много интересных статей по архитектуре известных высоконагруженных проектов). Это как-то вообще порвало шаблон у меня, я привык думать о веб-технологиях от Microsoft, как о каких-то костылях.
P. S. А если сильно увлекаться программированием, то могут посещать идеи о том, что весь мир построен по принципу MVC и где-то там есть ещё и база данных :)
Комментариев: 12
Тормоз
July 29th, 2010 at 17:22
1Про фрилансеров много знает чувак — http://webproektov.ru/
Я не стал слушать курс, потому что вообще аудиоподкасты не люблю, но ты вроде к ним пристрастен.
Тормоз
July 29th, 2010 at 17:26
2И да, вкл. режим “зануда” ) Когда я думал про Акаши даже HTML не знал, что уж там о программировании говорить. Хотя, в детстве из книжки перепечатывал коды нескольких простеньких программ на Basic (в ZX Spectrum).
Но всё же точно не верно считать увлечение программированием причиной мыслей о всемирной базе данных. Мне серьезно казалось, что о чём-то таком хоть раз думал каждый.
Тормоз
July 29th, 2010 at 17:33
3И ещё маленько завидую тебе ) Ты переборол перфекционизм, а это важный шаг для скорейшего достижения реальных результатов. Нечто существующее и работающее достаточно хорошо лучше, чем нечто идеальное в мечтах.
Random
July 29th, 2010 at 20:40
4Сэм, нахрена тебе фрилансеры? Они же разгильдяи редкостные, и после сдачи проекта резко недоступны. Посади программера на зарплату, пусть работает. Дёшево и максимально продуктивно.
samlowry
July 29th, 2010 at 21:19
5Да нихрена не продуктивно — всё точно также. + задачи надо высасывать из пальца.
samlowry
July 29th, 2010 at 21:20
6Тормоз: я ещё много что не поборол.
Random
July 30th, 2010 at 03:27
75, зачем высасывать из пальца задачи? Или у тебя проект не большой?
Насоздавал ему тикетов на месяц вперед и он пашет.
samlowry
July 30th, 2010 at 10:13
8У меня разные проекты есть и будут, на разных языках. Тот, который я перевёл под Джанго — не требует постоянной работы. Вернее — там есть фичи, которые надо делать, но они все относятся к необязательным. Обязательные я придумываю непостоянно.
Два — у меня работал человек на зарплату. Мне в итоге не понравилось это.
Что мне в фрилансе нравится — отсутствие привязанности (и моральной в т. ч.), возможность распараллелить.
Roman Pushkin
July 30th, 2010 at 15:04
9Насчет фрилансеров я сейчас делаю так:
Во-первых, если ищешь на бирже, то их надо сильно дрючить, особенно программеров. Потому что дизайнера хотя бы видно, а программер может быть просто лохом. В частности есть теория, что плохой программист отличается от хорошего продуктивностью в 60 там с чем-то раз. У меня друг нанимает ROR программеров на фулл-тайм удаленно, платит 30к рублей в месяц. Он разработал бальную систему. Максимум программер может набрать 40 баллов. Максимум из того, что реально набирали – 36. Но этого чувака не взяли, он запросил много денег. Сейчас работает чел, который набрал 34. Он дает им задание – написать блог-engine. С комментами, постами и всей херней. С одной стороны этот blog engine никому не нужен, их пруд пруди, с другой стороны это довольно серьезное приложение, в котором будет видно все: и разметку, и работу с авторизацией, и знание существующих возможностей ROR, и работу с БД. Если хочешь, могу его попросить написать статью на эту тему.
Я же использую другой подход. Я мониторю блоги чуваков, которые пишут на тему ASP.NET, к которым люди обращаются за советами, которые шарят в нужных мне вещах. Это потенциальные работники, по блогу обычно можно много сказать, какой уровень профессионализма и т.д.
Дизайнеров сейчас ищу на мейк-пиздато коммьюнити – закрытое сообщество, куда пускают только избранных. По сути это избавляет от головной боли, т.к. отбор уже пройден.
Потом если чел у тебя работает за зарплату, то тут нужен issue tracker, репозиторий, ну и time management, который обычно входит в issue tracker. Есть бесплатные сервисы с trac + git, предоставляют до 500 мегабайт бесплатно, что вполне нормально.
У чела должна быть отчетность. Конечно, он не должен приходить четко на работу в 8 (потому что это его провозирует ставить таймер и спать дальше), но ты должен быть онлайн, чтобы и с ним как-то контактировать.
Другими словами, процесс непростой и интересный. По сути это управдение человеческими ресурсами. Тоже своего рода умение, от которого многое зависит.
Тормоз
July 30th, 2010 at 15:54
10Роман, такое задание для проверки, конечно, выявит лучших. Но требует много времени и денег, при этом сам проверяющий также должен отлично соображать в Ruby (для твоего конкретного примера).
Насчёт блогов согласен, тоже есть несколько программистов на примете именно потому что видно в блоге, что человек хорошо врубается.
Roman Pushkin
July 30th, 2010 at 17:56
11Тормоз, обычно кандидату дается какой-то фиксированный срок. В конце он дает то, что сделал или не сделал.
Артём Азаров
August 31st, 2010 at 22:18
12Вся проблема обычно кроется в самом заказчике, если тз составлено нормально, то никого дрючить не нужно :)