Принципы работы одного Python-разработчика

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

С одной стороны хотелось быть поделиться накопленным опытом, который может оказаться полезным для начинающих разработчиков, а с другой стороны получить обратную связь от более опытных разрабочиков, руководителей и специалистов смежных областей.

Принципы условно сгруппированы в три группы: принципы принятия решений; принципы, направленные на повышение качества кода; принципы, направленные на повышение производительности кода.

  • Принятие решений
    • Любое техническое решение должно быть обосновано
    • Ответственность за принятое решение всегда лежит на том или тех, кто принял данное решение
    • При принятии технических решений необходимо учитывать их действие во времени и их соответствие потребностям бизнеса
    • Одним из основных критериев при принятии технических и иных решений должна быть их наибольшая эффективность
    • Смело отступать от правил, методологий, шаблонов и прочих ограничений, если эффект от такого отступления превышает возможные потери (Special cases aren’t special enough to break the rules, although practicality beats purity)
    • При необходимости сделать работающее, но, возможно, не наилучшее, решение сразу, а позднее улучшить его (Now is better than never, although never is often better than *right* now)
    • Если сложно выбрать между двумя альтернативными техническими решениями, то нужно выбрать любое и двигаться с ним дальше, когда появится больше инфорации, то можно будет сделать рефакторинг, если решение оказалось неоптимальным
    • Гибкость технических решений крайне желательна, а универсальность не обязательна
  • Качество исходного кода
    • Качество кода следует оптимизировать на базе сформированной системы критериев, сбалансированной по отношению к затратам в краткосрочном и долгосрочном периодах
    • Писать оптимальный код сразу, если это не увеличивает его сложность и сроки разработки (Beautiful is better than ugly)
    • Самодокументируемый код имеет приоритет над хорошо прокомментированным (Beautiful is better than ugly)
    • Писать TODO и FIXME в коде
    • Давать переменным, функциям, методам, классам и другим объектам исходного кода имена точно отражающие их назначение, несмотря на увеличение длины названий (Explicit is better than implicit)
    • Меньшее число строк и объем кода предпочтительнее, при сохранении прежней читабельности кода (Simple is better than complex)
    • Применять инспекцию кода (code review) как инструмент обнаружения ошибок, выравнивания стиля разработки, знакомства с чужим кодом и обучения в команде
    • Применять повторное использование своего и чужого кода
    • Использовать специализированные библиотеки для решения конкретных задач, вместо разработки своего аналогичного кода
  • Производительность
    • Производительность разработки кода имеет приоритет над производительностью исполнения кода
    • Оптимизация производительности исполнения кода должна быть обоснована соответствующей потребностью
    • Оптимизация производительности исполнения кода должна выполняться за счет устранения наиболее серьезных узких мест
    • В первую очередь должны быть использованы наиболее эффективные методы оптимизации производительности исполнения кода

Далее дано развернутое пояснение каждому из перечисленных принципов. Для некоторых принципов в круглых скобках указанны постулаты Zen of Python, которые на мой взгляд имеют отношение к данным принципам, либо их частям. (далее…)

Немного об организации отдела информационной безопасности

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

Исходя из этого непонимания складывается и все проблемы ИБ в организациях и, собственно, организации самой информационной безопасности.

(далее…)

Growth Hacking — 5 правил успеха

Growth Hacking — 5 правил успеха Growth Hacking — это то, о чем постоянно думают стартапы Кремниевой долины, а сейчас уже и все проекты на начальной стадии в нашей стране. Что же это такое? Как правильно настроить компанию и ее сотрудников на быстрый рост? Мы публикуем 5 правил для тех, кто хочет добиться быстрого роста компании, от Линкольна Мёрфи. Статья написана от первого лица.

На данный момент Growth Hacking является крайне популярным явлением: фактически каждый, кто хоть немного связан с маркетингом или разработкой продуктов, предпочитает называть себя growth hacker’ом. И поскольку каждый второй определяет себя подобным образом, этот термин начинает постепенно терять свою значимость. Однако то, что включает в себя понятие Growth Hacking (или как там это будут называть в будущем), продолжит свое существование и, по сути, уже сейчас существенно преобразует индустрию в целом.
(далее…)

VCStart: как мы создавали платформу

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

VCStart: как мы создавали платформу
(далее…)

Интересные факты о работе технической поддержки

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

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

1) Оперативный ответ на вопрос пользователя на 19% повышает вероятность получить от него повторный запрос. И, как правило, такой запрос способен решить сам пользователь, уделив на это 3-4 минуты своего времени.

Люди не хотят думать, порой им просто хочется перевесить свои проблемы на других, и самое главное: требовать, требовать и еще раз требовать. (далее…)

Как мы 5 лет шли к проекту [#tceh] и чего, кроме мозгов, не хватает русским IT-стартапам

Как мы 5 лет шли к проекту [#tceh] и чего, кроме мозгов, не хватает русским IT стартапам

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

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

Вот прямо сейчас кончаются времена, когда многие делали форменную туфту для получения лёгких денег по аналогу бума доткомов. И заявляли, что «начнём мы, когда найдем инвестора». Модель была простая: бралась идея с потолка, по ней ничего не делалось, но находился инвестор. По возможности — лох, не особо смыслящий в IT. Полученные деньги вкладывались в прототип и массу пиара, затем разыскивался инвестор второго раунда. Дальше стандартно: «когда водка выпита, выясняется, что джип разбит…». И проект заканчивался.

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

MadRobots идет на войну: как мы открываем точку в «Меге»

Весной мы открыли на Горбушке нашу первую розничную точку продаж. Это было довольно спонтанное решение — хозяин торгового центра предложил нам место, а мы, не долго думая, согласились. Теперь MadRobots открывает второй магазин — на этот раз, в молле «Мега Белая Дача».

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

Мы решили стать как раз такими безумцами. Когда все бегут с поля боя, мы наоборот пакуем вещи, чтобы отправиться на передовую. И, конечно, надеемся, что сможем выиграть там, где другие терпят одно поражение за другим, потому что верим: делая как все, вряд ли можно создать хороший бизнес. Сможет ли MadRobots захватить «Мегу»? Делайте ваши ставки.

MadRobots идет на войну: как мы открываем точку в «Меге» (далее…)

Персональное хранилище html-фрагментов для любителей и профессионалов

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

С одной стороны, сервисы персональных страниц существуют и радуют своих преданных пользователей, лучший пример тому – сервис My Yahoo

С другой стороны, подобные сервисы прекращают работу. О закрытии сервиса iGoogle было объявлено летом 2012 года, а 1 ноября 2013 были навсегда удалены все персональные страницы пользователей этого сервиса.

В целом, можно констатировать нулевой интерес инвесторов и предпринимателей к созданию таких сервисов. Вроде бы неплохая идея предоставлять пользователю только то, что ему нужно на одной страничке наталкивается на вполне закономерные трудности:
(далее…)

Филдсовскую медаль по математике впервые в истории получила женщина

Филдсовскую медаль по математике впервые в истории получила женщина37-летний профессор математики Мариам Мирзахани (Maryam Mirzakhani) из Стэнфордского университета стала первой женщиной, которая получила Филдсовскую премию — самую престижную награду в области математики.

Оргкомитет признал исключительно ценный вклад Мариам в геометрию и динамические системы. «Её работа по римановым поверхностям и их модулям совмещает в себе несколько математических дисциплин — геометрию Лобачевского, комплексный анализ, топологию и динамические системы — и, в свою очередь, повлияла на все эти дисциплины. Она получила повсеместную известность благодаря своим первым результатам по геометрии Лобачевского», — отмечено в заявлении комитета.

Филдсовская премия и медаль (Fields Medal) вручаются один раз в 4 года на каждом международном математическом конгрессе двум, трём или четырём молодым математикам не старше 40 лет. Поскольку Нобелевская премия математикам не вручается, то Филдсовскую премию часто называют «Нобелевской премией для математиков».
(далее…)

Переезд электронщика в Шэньчжэнь

Очередная история переезда на чужбину в нескольких частях.

Кратко о авторе.

30 лет. Специальность — радиофизик. Специализация — Компьютерная электроника. Основное направление — разработка электроники и встраиваемого программного обеспечения. Опыт работы — 10 лет. Опыт фриланса — 4 года.

Переезд электронщика в Шэньчжэнь

(далее…)