Category: лытдыбр

Category was added automatically. Read all entries about "лытдыбр".

4. BackboneJS.

Допустим, у нас есть группа разработчиков на PHP, которые знают чуть чуть JS и jQuery. Что самое простое мы можем сделать, чтобы начали писать браузерное приложение, и были продуктивны немедленно?

Мы можем попробовать использовать тот же принцип, и те же архитектурны правила, к которым они привыкли в PHP. У них были шаблоны с встроенным PHP? Отлично, мы будем использовать такие же шаблоны со встроенным JS, которые будут разворачиваться в браузере. Они использовали jQuery? Отлично, мы сохраним jQuery.

Нам остается задать этому какую-то структуру. Элемент UI - это будет объект View с присоединенным DOM-элементом, и методом 'render', который должен разворачивать шаблон в присоединенный элемент. Помимо этого, View должен уметь перехватывать события UI, и вызывать свои методы.

Помимо этого, нелишне добавить к этому простые средства для работы с REST API. Класс для кусочка JSON, который умеет создаваться/читаться/сохраняться/удаляться (CRUD) в каком-нибудь стандартном варианте REST. Назовем его Model. Раз у нас REST, то надо еще уметь получать их список. Значит, нужен еще Collection.

У нас сейчас получилось что? Правильно, самый популярный фреймворк для разработки в браузере - backbonejs (http://backbonejs.org), который, в сочетании с модульной системой позволяет из говна и палок собрать браузерное приложение.

Collapse )
cartoon

Мой доклад на SoftwarePeople

Это будет доклад о том, что вы всегда хотели знать, но боялись спросить. Это доклад о проектировании. Главных тезиса два.

1) Хорошо организованная группа профессионалов всегда проектирует лучше, чем один мегаумный архитектор. Я собираюсь это настолько хорошо обосновать, что это близко к "доказать".
2) Менеджер может эффективно направлять и контролировать процесс проектирования, в том числе надежно отмечать его прогресс. Я собираюсь не просто это сказать, а наглядно и просто показать - как, так, что вы сможете это повторить. Ведь понимание требуется для действия - или нафиг оно не нужно, такое негодное понимание.

В сущности, без участия менеджера (руководителя группы, отдела, whatever) групповой процесс проектирования невозможен. Это не основная мысль, это то, что станет понятно по ходу изложения.

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

P.S.: Мне повезло - в разные моменты жизни мне приходилось лично заниматься всеми из перечисленных, непохожими друг на друга, областями. :) При этом, мне не придется рассказывать вам про них, и пугать вас тем, в чем вы не разбираетесь.

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

P.P.S.: На тот случай, если кто не знает, что такое SoftwarePeople. www.softwarepeople.ru. Регистируйтесь.
cartoon

Проектирование по вытягивающему принципу

В тексте некоторые фразы представляют собой гиперссылки на предыдущие мои статьи, которые раскрывают контекст. Видите ссылку? Вокруг нее текст, смысл которого ускользает? Или может быть, вы с ним несогласны? Или же, вам просто любопытно? Тыкайте в ссылку.

Сегодня в беседе с коллегой рассказал про то, как работает архитектор, и осознал, что ни разу ни где об этом не писал.

Кто читал старые книги по программированию помнит термины "программирование сверху вниз", "программирование снизу вверх", и, самое невероятное - "от центра к краям". Удивительная особенность этих терминов в том, что они просты и понятны, но ни один нормальный человек, примеряя объяснения на себя, понимает, что так работать не может. Это модели понятные, но к реальности никак не относящиеся. Так же, как и «легенда агилистов о ватерфоле».

Что имеет место в реальности - это две стратегии при работе над архитектурой. Вы их сразу узнаете при объяснении. Назовем их "push" и "pull".

Collapse )
cartoon

Как добро победило зло

По-моему, получилось забавно.

Gaperton:
Как яблочко-то на вас, оказывается, сильно действует, а?

Вообще-то пользователь никогда не видит, как оно светится - оно с обратной стороны экрана ноутбука расположено. Его единственная функция - гипнотизировать окружающих, и вызывать у отдельных представителей своим свечением ацкий баттхерт. Оно как бы говорит вам: "подчиняйтесь мне, сyки!"

Да. В светящемся яблоке, определенно, скрыта вся сила.

Collapse )
cartoon

Конкурс

Все совпадения - сами понимаете...

"- Что мы будем делать сегодня вечером, Брейн?
- То же, что и всегда, Пинки. Завоевывать мир!" (м/ф "Пинки и Брейн")

1995 год. ВМиК МГУ. Четвертый семестр.

- ...итак, мы прочитали вам двухнедельный интенсивный курс машинной графики, что называется - с полным погружением. Вы спросите - как мы будем принимать у вас экзамен? Я вам скажу - экзамена не будет!

В зале поднялся гул. Студенты, буквально, не верят своему счастью.

- Вместо экзамена, у нас будет конкурс. Каждый из вас напишет программу. И мы, преподаватели, будем ваши программы оценивать. Сразу скажу - эстетические критерии будут на первом месте. Победители получат призы... А вот, скажем, в прошлом году - трое человек в команде написали программу, которая заняла первое место, и она рисовала...

Collapse )

UPDATED: Поправлена концовка. Несколько небольших правок по тексту. В конец добавлен тематический мультик - "Пинки и Брейн". После прочтения - обязательно прослушайте вступительную песенку. Очень, очень тематическая. :)
cartoon

Настоящее имя

1998 год. Общежитие МГУ. Резюме.

- Слушай, Пашичь помоги мне резюме оформить.
- Куда устраиваешься?
- В американскую компанию.
- Понятно. Проваливай, освобождай место. Буду править твое резюме.
Пашичь садится за компьютер, и первое, что делает с моим резюме - быстро и решительно исправляет мое имя с Владислав на Владимир.
- Зачем?!
- Твое имя ни один нормальный американец не выговорит. А имя "Владимир" - им знакомо, и благозвучно.
- Но, блять, меня-то зовут не Владимир! А Владислав!!
- Так, я не понял, - поворачивается ко мне на стуле Пашичь, - ты хочешь получить эту работу, или нет?
- Хочу, - говорю.
- Если у тебя есть хотя бы один дополнительный шанс ее получить, - назидательно говорит мне Пашичь, - глупо его не использовать.
- Но меня зовут Владислав! - упавшим голосом говорю я.
- Это неважно.
...
- Ты что делаешь?!
- БУДЬ СПОК!!!
Это опять Пашичь. Он заменяет в резюме английский со словарем на флюент инглиш.
- Да я двух слов связать не могу, Пашичь!
- Всем похуй. Тебя все равно никто проверять не будет, - убедительно говорит Пашичь, - и если есть хоть малейший шанс...
- Да знаю я, знаю! Но что мне делать, если меня таки проверят, а?!
- Скажешь, что у тебя давно не было языковой практики, - легкомысленно пожимает плечами Пашичь.
- Да хер с тобой, пиши что хочешь.
- Вот, это правильно. Не мешай мне.

***

2010 год. Другое место, и другое время. Флюент инглиш.

В процессе напряженных переговоров с китайцами, мне пришлось переводить между русским и китайским английским синхронно, и через час я занемог, как говорится не в шутку. Хотя держался как мог, периодами развлекая себя и русскую публику переводами в стиле Гоблина. Переговоры поэтому шли в теплой, дружеской обстановке.

Но, сцуко, - напряженно. Потому, что мы с китайцем понимали, что вопрос цены - весьма непростой. И потому - оба вели себя невероятно искренне и открыто. Чья искренность победит - та сторона и возьмет.

- Ну, а теперь давайте обсудим вопрос гарантийных обязательств! - довольно улыбаясь, говорит директор.
- Не могу больше, - взмолился я, - мне надо минут пять побыть в тишине. Сейчас вернусь - я в курилку.

Ухожу в курилку, наслаждаясь покоем. И тут понимаю, что забыл попросить электронный ключ от двери. "Ладно", думаю, "один хер ничего не сделаешь, скоро кто-нибудь придет". Сажусь, и начинаю ждать.

Открывается дверь, и в курилку заходит искренне довольный жизнью китаец в паре с генеральным. Ага, думаю. Молодцы.
- Сигареты из Тайпея! - жизнерадостно объявляет наш гость, - угощайся.
- Блин, - говорю, - первый раз пробую китайские сигареты. Спасибо.
- И как тебе они?
- Весьма неплохо. Весьма.
- Кстати, Влад, а как твое настоящее имя?
Я буквально слышу, как лопается мозг нашего директора. Его английского на этот вопрос хватило.
- Да Влад его зовут, Влад, правда! - объясняет он непонятливому китайцу.
Но я суть вопроса понял, и отвечаю.
- Настоящее имя - Владислав. Влад - это сокращение для американцев, мое полное имя они выговорить не способны.
- Как-как?
- Вла-дис-лав.
Он пытается повторить, ошибаясь в одном слоге.
- Да, это непросто, - признает он.
- Почти получилось. А у тебя как звучит настоящее имя, Лен? - говорю я, внутренне собираясь.
- Мое настоящее имя - Йоу... йоу... йоу!
- Holy shit! - поражаюсь я.
- Ну что, можешь повторить? - довольно спрашивает он.
- Не, Лен. Даже пытаться не буду. Ни малейшего шанса. Но ведь это не имеет ничего общего с "Лен"?
- Точно. Наши языки очень разные. Мы, китайцы, выдумываем имена для вас, европейцев, специально. Каждый выбирает то имя, какое ему нравится.
- Нифига себе, - говорю.
- Такие дела. Ну что ж, теперь я знаю твое настоящее имя. Пойдем обсуждать гарантийные обязательства?

И мы пошли. А что теперь сделаешь? Все. Он знает мое настоящее имя. А я его - даже выговорить не могу.

***

1998 год. Офис американской компании в Москве. Той самой.

- О! Свободный английский! Круто! Это такая редкость! - обрадовался американец, проводивший собеседование. Он был директором R&D, - Ну, и какова была твоя специальность?
"Блять", с тоской подумал я, - "Сука ты, Пашичь..."
- Моя, эта... Давно... Давным... Давнеть не иметь языка... практик! Практик не иметь!

Глаза директора медленно округлились в изумлении, и он согнулся пополам, хрипя от хохота.
- Флюент... Инглишь... - повторял он между приступами, не в силах остановиться. Я, вежливо улыбаясь, наблюдал за истерикой.

- Ладно, - утирая слезы сказал он, - Это ничего, пошлем тебя в штаты, заговоришь. Коля вот тоже двух слов связать не мог, у него это, как это у вас называется, "английская спецшкола" была. А съездил - и ничего, тоже заговорил. Правда, Коля? А у тебя же это... Флюент... - и тут его опять скрутило.

Так меня приняли на ту работу. И - таки да, примерно полгода назвали Владимиром. Пришлось сократить это имя до наименьшего общего деноминатора - Влад. Американцы - сами понимаете, они такие. Выговорить, сцуки, не могут. Главное в этом деле - не давать не им ни малейшего шанса.
cartoon

Ag;)e Checklist. Page 3. Product Owner.

Ag;)e Checklist: Product Owner

«Product owner (он же Product Manager) - это человек, отвечающий за разработку продукта»

Что не может не радовать. Скажем так — это здорово и очень правильно выделять роль product manager. Многие методологии запросто игнорируют аспект управления требованиями, предполагая, что они, непротиворечивые и полные, как бэ даны нам свыше.

Collapse )
cartoon

О выборе базовых технологий и open source

Лог моей беседы с thesz.

Беседа в чате - интенсивна, и поэтому сильно "асинхронна". Мы оба пишем одновременно, продолжая мысль, периодически "синхронизируясь", так, и мысль несколько "растерта" по ответам, и два соседних коммента меня и thesz могут между собой не соотносится. Имейте это в виду при чтении - некоторая особенность.

Но беседа ИМХО стоит публикации, несмотря на особенность.

Collapse )
cartoon

professionali.ru. Наглый спам и использование личных данных.

Периодически мне приходил следующий спам:
_____
Уважаемый профессионал!

В начале 2009 года мы Вам отправляли личное приглашение в Сообщество профессионалов России, но не получили Вашего подтверждения.

Пожалуйста, присоединяйтесь к нам. Уже порядка 200,000 бизнесменов и специалистов ждут Вас для обмена деловыми связями и профессиональным опытом:
http://professionali.ru/Accept/......

Членами сообщества уже также являются, возможно, Вам известные профессионалы:
Наталья Желнова, Владимир ЧЕРНЫШЕВ, Виктория Жура и многие другие.

Присоединяйтесь, ведь связи решают всё!

С уважением,
Команда Professionali.ru
_____

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

Удалить профиль я не смог - я не понял, как это делается. Тогда я плюнул на это дело, и вышел из системы.

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

Вам понятно, как это произошло, уважаемые коллеги? Вообще, на них стоило-бы подать в суд, ибо имеет место совершенно неслыханная наглость, переходящая все границы. Пока же, я буду рад, если кто-нибудь сообщит мне способ, как удалить оттуда аккаунт.
cartoon

Пиши код

У нас в СQG существовала ежегодная процедура аттестаций. Раз в год вам выдают форму, заполнив которую, вы можете письменно рассказать компании, насколько вы круты, и как много сделали за отчетный период, а компания, во-первых - высказывает в вам в ответ (опять же письменно) свое мнение о вас, и во-вторых, пересматривает вам зарплату в сторону увеличения. Или нет. Ну, или еще что-нибудь делает. В общем, момент истины.

Короче говоря, была в CQG процедура аттестаций. В аттестации вы можете написать много чего, в том числе и наболевшее. Скажем, вы можете написать, помимо отчета о своих достижениях, что вас достало текущее положение вещей, и вы хотите что-то изменить. Как это и сделал однажды я. И смотрит ваши аттестации, в первую очередь, конечно, ваш начальник. А начальником моим, как вы может быть уже знаете, прочитав мою статью "Читай код [cука]", являлся замечательный человек и гениальный архитектор Тол Корин.

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

Ну, короче, архитектор я уже был по всем пронятиям. Умел уже не только код писать, но и читать. Не только понимать мысль автора кода, но и продолжать ее. Мог обходиться минимумом правок в чужом коде, для того, чтобы достичь своей цели. Короче, наука Тола пошла впрок, я, наконец, действительно мог, и я осознавал то, что я мог. Я крут. И я прям так в аттестации и написал. И еще я сказал, что мне для успеха проекта надо выделить Бойца (это никнейм одного сотрудника), а не этого, пнимаешь-ли, неизвестного мне разработчика, которого мне уже планируют дать.

Получил я совершенно разгромный ответ. Письменно. Я был убит. Я не верил, что это мог написать Тол. Я думал, это написал кто-то другой. Я был в шоке.

"Влад должен уметь и _хотеть_ работать не с теми людьми, с которыми ему хочется, а с теми, которых назначит менеджмент"

"Компания не видит возможности удовлетворить желание Влада, и освободить его от кодирования. Его требования недопустимы".

Короче говоря, я был близок у истерике (у меня была в те годы довольно тонкая душевная организация), я подозревал разного рода козни, но, довольно скоро Тол приехал в Москву, и окончательно разорвал мне мозг. Он сказал - "Влад, ответ на твою аттестацию написал я. Никто другой не приложил к нему руку".

- Тол?!
- Да, Влад, - спокойно говорит Тол, глядя мне в глаза.
- Но почему?!
- Влад, ты хорошо понимаешь, что имено ты написал в аттестации? Кажется, ты написал, что тебе нужны специальные люди для кодирования, или я неправильно тебя понял?
- Ну да! Тол, сейчас мы пректируем новую подсистему данных, и если я буду кодировать, у меня не останется время на продумывание всей подсистемы! Мне нужны люди!
- Это недопустимо.
- Тол, да как ты не понимаешь...
- ...Влад. Дай я скажу, - спокойно говорит Тол, - Я старше тебя, и наблюдал за свою жизнь много "архитекторов" и "дизайнеров", которые не пишут код. Влад, они очень быстро становятся очень полохими архитекторами и дизайнерами. Год или два - и все.
- Правда?
- Точно. Они довольно быстро теряют связь с реальностью. Когда ты не пишешь код, ты не получаешь обратной связи, ты не видишь, во что выливаются на практике твои мысли. Когда ты не правишь багов, и не сидишь на поддержке, ты лишаешь себя важнейшего элемента обратной связи - ты не видишь, какие решения оказались плохи, а какие хороши. А обратная связь - это сама суть инженерии. Ты ведь уже заметил, что наша база данных по дефектам содержит значительную часть требований? Это жизнь. Так всегда происходит. Твое желание иметь группу вполне понятно, но ты не должен переставать писать код и работать с ним.
- Конечно, Тол, как ты такое мог подумать? Конечно я не хочу совсем отказаться от написания кода, - поспешно и неискренне говорю я.
- То есть, я неправильно тебя понял, я ошибся, и ты совсем не имел в виду того, что ты перестанешь писать код и исправлять дефекты? Так?

Тол, задавая мне этот вопрос, внимательно смотрит мне в глаза. Я понимаю, что именно этого я на самом деле и хотел, и также я понимаю, что соврать сейчас не получится. Да и не могу я врать своему учителю, глядя в глаза. Надо думать, и принимать решение.

- Да, Тол. Я действительно не хочу переставать писать код, - с усилием говорю я, - я буду его писать.

- Отлично, Влад. - сказал Тол, откинувшись на спинку стула, и очень натурально сделав вид, что он на самом деле меня неправильно понял, хотя я был на сто процентов уверен, что он понял меня правильно, - Это я и хотел от тебя услышать. В самом деле, я рад что ошибся.

- Но я хочу работать с Бойцом! Что в этом плохого? А вы собираетесь дать мне черт знает кого! Я с ним уже работал, и у нас здорово получается! У нас синергия! Ты же видел результаты предыдущего проекта!
- Влад. Боец занят в другом проекте. Он нужен там. Мы даем тебе другого специалиста.
- Тол, но у меня отлично получается работать с Бойцом!
- Влад. По твоему, в чем проявляется профессионализм менеджера? Ведь ты становишься менеджером, когда у тебя появляется группа.
- В чем?
- Он должен уметь управляться с людьми, а не только с компьютерами. Причем, с теми людьми, которые есть в наличии, а вовсе не с теми, с которыми ему удобно, и которые ему нравятся. Это как широта ролевого диапазона у актеров. Хороший актер умеет играть разные роли, а не только те, которые подходят к его характеру. Влад, в жизни у тебя не будет возможности выбирать лучших и удобных. Учись обращаться с теми, кто есть. И я скажу тебе больше - люди не всегда такие, какими кажутся на первый взгляд. Возможно, ты откроешь в них новые грани. И делать это, теперь, когда у тебя будет группа - твоя работа.

- Хорошо, Тол, - пристыженно сказал я. Тол понимал меня лучше, чем я сам пронимал себя. Может быть, потому, что в молодости он был таким же? - Ты, как всегда, оказался прав, черт возьми. Я буду писать код, Я буду учится. Но, таки, получается, что основная просьба моей аттестации будут удовлетворена? У меня будет группа?

- Ну конечно, Влад. Скажу честно - мне нравится с тобой работать, и я рад, что мы поняли друг друга. Главное - не переставай писать код.