Pull to refresh
0
0
Дмитрий Шамин @dyadyavasya

User

Send message

Code Conventions: как мы сохраняем быстрый темп разработки PHP-проекта

Reading time7 min
Views24K
Привет, Хабр. Меня зовут Евгений Удодов, я сооснователь и технический директор компании Roistat. Хочу поделиться нашим опытом разработки большого и сложного продукта — системы аналитики.

TL;DR: Мы выложили на github наш Code Conventions и рассказали в статье о том, как его применять на практике.

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

За 4 года существования нашего проекта мы сделали больше 20 000 Pull Request’ов (далее PR) и под катом я расскажу, как же мы решили эти проблемы.


Читать дальше →

Организация процессов производства информационных систем. Часть 2. Формирование проектного решения

Reading time8 min
Views10K

V Разработка плана-графика проектных работ

Чтобы выполнить большой и важный труд, необходимы две вещи:
ясный план и ограниченное время.
Элберт Хаббард
И вот заказчик и исполнитель ударили по рукам, решив, что именно они будут производить, определив примерные сроки и стоимость. Начинается второй этап производства программного продукта.

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

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

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


Читать дальше →

Зомби, которые съедают вашу память

Reading time8 min
Views74K
Что бы вы там себе не думали, а зомби существуют. И они действительно едят мозги. Не человеческие, правда, а компьютерные. Я говорю сейчас о зомби-процессах и потребляемых ими ресурсах. Это будет душераздирающая история о потерянных и снова найденных 32 ГБ оперативной памяти. Возможно, лишь некоторые из вас столкнутся с точно такой же проблемой, но если вдруг это произойдёт — у вас хотя бы будет шанс понять, что происходит.

Начнём с того, что компьютеры под управлением ОС Windows склонны со временем терять память. Ну, по крайней мере, у меня, при моём способе ими пользоваться. После пары недель без перезагрузок (или, например, всего одного уикэнда за который я 300 раз пересобрал Хром) я стал замечать, что диспетчер задач начинает показывать мне очень маленькое количество свободной оперативной памяти, но в то же время в системе нет никаких процессов, которые эту самую память активно используют. В том примере выше (с 300 сборками Хрома) диспетчер задач сказал мне, что в системе занято 49.8 ГБ плюс ещё 4.4 ГБ памяти сжато — но при этом запущено всего несколько процессов, и все они в сумме даже и близко не используют столько памяти:

image

В моём компьютере 96 ГБ оперативной памяти (да, я счастливчик) и когда у меня нет вообще никаких запущенных процессов — я, знаете ли, хотел бы видеть ну хотя бы половину этой памяти свободной. Я правда рассчитываю на это. Но иногда этого достичь не удаётся и мне приходится перезагружать ОС. Ядро Windows написано качественно и надёжно (без шуток), так что память не должна бы пропадать бесследно. Но всё же она пропадает.
Читать дальше →

Диалоговый телеграм бот на PHP

Reading time5 min
Views157K
На данную тему написано много статей на Хабре и просто в интернете. И я расскажу о своем опыте работы с телеграм ботом и моментами, которые «в лоб» не удалось решить.
Читать дальше →

«Быстрорастворимый» фронтенд. Лекция в Яндексе

Reading time12 min
Views25K
Ускорить доставку элементов фронтенда на устройство пользователя можно несколькими способами. Разработчик Артём Белов из самарского офиса норвежской компании Cxense попробовал самые многообещающие: HTTP/2, Server Push, Service Worker, а также оптимизацию в процессе сборки и на стороне клиента. Итак, что же нужно сделать, чтобы сократить время отклика приложения до минимума?


Выясняется, что алгоритмы сжатия существуют уже давно. Это произошло где-то в июне — видимо, где-то над Самарой пролетал метеорит и идея проверить новые алгоритмы сжатия, Zopfli и Brotli, пришла мне и парню из соседней компании. Больше чем уверен, вы читали его статью, это Александр Субботин. Статья разошлась на Medium, и он известен, а я нет.

Контора пишет: взрослый разговор о чате на сайте

Reading time11 min
Views11K
Не любите, когда вам звонят только потому что ваш номер попал в краденую базу? А как вам окно обратного звонка, от которого не отвязаться на сайте? Вот и мы не любим. Когда это всё происходит, кажется, что продавцы всего и вся вламываются в твоё личное пространство. И именно в этот момент интерес к компании,  в которой работает настырный продавец, исчезает начисто и сменяется желанием нагрубить или припугнуть. В общем, ничего хорошего.

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


Читать дальше →

UX-дизайн: 50 вещей, которые вы наверняка забыли сделать

Reading time8 min
Views37K
«Я не злюсь, я просто разочарован.»
— PM

image


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

Представляем вам чеклист из 50 пунктов для самопроверки. Вот примерные подразделы:

  1. Логин и регистрация
  2. Первый опыт
  3. Важные детали
  4. Запуск
  5. Профиль
  6. Безумные потоки


Локализация комментариев в коде. Лекция Яндекса

Reading time8 min
Views26K
В процессе выхода на международный рынок с API Карт мы решили отказаться от комментирования кода на русском языке. При этом на основе комментариев формируются справочники сервиса, которые затем публикуются у нас на портале, и отказываться от поддержки справочников на русском языке мы не хотели. Из доклада Олеси Горбачевой и Максима Горкунова вы узнаете, как технические писатели Яндекса совместно с разработчиками API Карт поменяли язык комментариев и организовали синхронную поддержку справочников и примеров сразу на двух языках.


Применение принципа poka-yoke в программировании на примере PHP

Reading time16 min
Views28K


Всем привет! Я Алексей Грезов, разработчик Server Team Badoo. Мы в Badoo всегда стараемся сделать так, чтобы наш код было легко поддерживать, развивать и переиспользовать, ведь от этих параметров зависит, насколько быстро и качественно мы сможем реализовать какую-либо фичу. Одним из способов достижения этой цели является написание такого кода, который просто не позволит совершить ошибку. Максимально строгий интерфейс не даст ошибиться с порядком его вызова. Минимальное количество внутренних состояний гарантирует ожидаемость результатов. На днях я увидел статью, в которой как раз описывается, как применение этих методов упрощает жизнь разработчикам. Итак, предлагаю вашему вниманию перевод статьи про принцип "poka-yoke".

Читать дальше →

Freemium или Free Trial — какую бизнес модель выбрать при продаже софта?

Reading time10 min
Views34K


Модель монетизации – это именно тот пунктик в стратегии каждого проекта, как облачного сервиса, так и оффлайнового бизнеса, который в конечном итоге определяет его успешность. Правильная модель монетизации — своеобразный ключ от квартиры, где деньги лежат. Если же он не подходит, то вряд ли этот стартап превратится в реальный бизнес. Для облачных сервисов последнее время популярны различные вариации бесплатных версий или пробного периода. В связи с этим мы хотим поделиться статьей Линкольна Мёрфи, которая может помочь подобрать правильный «ключ» к успешному бизнесу, и ответит на вопросы, что лучше – freemium или бесплатный пробный период – free trial. Статья написана от первого лица.
Читать дальше →

AdminVK — мониторинг собственных групп Вконтакте на новые события при помощи push-уведомлений

Reading time3 min
Views24K


У вас есть сообщество вконтакте? Бывает ли такое, что кто то написал негативный комментарий, кого-нибудь оскорбил, или просто написал отзыв о вашей компании или вопрос на который необходимо быстро ответить? Мы в PushAll написали микросервис, который позволяет получать уведомления о различных событиях в ваших сообществах. Дело в том, что Вконтакте недавно выкатил Callback API для сообществ, и мы решили им воспользоваться облачив из API в формат push-уведомлений.

Если лень читать и хочется сразу использовать — AdminVK (полностью бесплатно, неограниченное количество подключаемых групп и сообществ)

Читать дальше →

Рабочая бизнес-модель успешного портала маленького города, созданного на CMS WordPress

Reading time6 min
Views35K
Даже в самых маленьких городах России есть собственные порталы с местными новостями, афишей, бизнес-справочником, форумом и доской объявлений.

Одним из таких порталов владею я. Его название — «АЙК Обнинск» (г. Обнинск, Калужская область, население — 105,200 человек).

Я начал разрабатывать его в 2010 году, на CMS WordPress. Основная идея — сделать нечто особенное, яркое, нужное жителям города каждый день.

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

Первый шаг — установка CMS. Так получилось, что мой портал стоит не на одном WordPress, а сразу на двух. Один для ленты новостей и другой для всего остального. Это сделано для удобства, поскольку новости требуют особой структуры, которая не подходит для контента из других разделов.
Читать дальше →

У семи программистов адрес без дома

Reading time4 min
Views98K
Привет, Хабр!

Мы в HumanFactorLabs парсим адреса в особо крупных размерах. Наши продукты упрощают ввод контактных данных и работу с ними.

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

Недавно на Хабре нас попросили привести примеры необычных адресов, в связи с чем и написана эта статья.
Читать дальше →

50+ лучших дополнений к Bootstrap

Reading time5 min
Views202K


Благодаря популярности CSS фреймворка Bootstrap, для него разработали массу различных дополнений. Даже сейчас вы можете использовать Bootstrap практически для любой задачи при разработке и оформлении вебсайта.

Для статьи я подобрал наиболее полезные дополнения «на все случаи жизни».
Читать дальше →

Как я сделал тренажер английского, которым пользуется не только моя мама

Reading time7 min
Views50K
Я расскажу о том, как мы с releu придумали, сделали и развиваем сервис мини-уроков английского языка, которым пользуются уже 4000 человек каждый день. Для затравки рост числа активных пользователей:

Читать дальше →

Облачные сервисы под высокой нагрузкой. Опыт Cackle

Reading time11 min
Views26K
Всем привет! Мы, в компании Cackle, занимаемся разработкой облачных SaaS-решений для сайтов с 2011 года. Наши продукты установлены более чем на 10 000 сайтах, каждый день мы обрабатываем в среднем 65 миллионов уникальных хитов. Полоса пропускания (bandwidth) в пики доходит до 780 мбит/сек, а БД в сутки принимает до 120 миллионов запросов на чтение, и до 300 тысяч запросов на запись. Такие нагрузки заставляют изобретать непростые решения, частью которых мы и хотим поделиться.

Cackle cloud widgets
Читать дальше →

Читаем электронные книги на английском без словарей и переводчиков

Reading time3 min
Views98K
1. Интро. Личное



Я готовлюсь к языковому экзамену IELTS (International English Language Testing System) — пожалуй, самому популярному
тесту на знание английского. Если хочется эмигрировать, найти работу в международной компании — диплом IELTS очень пригодится. Шкала оценок — от 0 (от испытуемого не удалось получить даже внятного мычания) до 9 (экcперт — испытуемый чертовски хорош и может устроиться даже редактором лондонской газеты).

Для учебы, например, в США, нужно не менее 6.5 баллов (бывает и 6, но не часто), для работы — 7 и выше. А для эмиграции, допустим, в Канаду — чем выше оценка, тем лучше. Мой прогнозируемый балл перед сдачей теста — 5.5. Значит, что я могу читать газеты, смотреть кино, вести беседы в знакомых ситуациях, писать ответы на письма. Но для работы в центральном офисе Гугла явно недостаточно.

Что же делать, чтобы подтянуть уровень языка? Конечно же, начать использовать его в своей жизни как можно чаще и больше. Например, читать книги на английском.
Далее

Лишние элементы или как мы балансируем между серверами

Reading time8 min
Views42K
Привет, Хабр! Какое-то время назад люди осознали, что увеличивать мощность сервера в соответствии с ростом нагрузки просто невозможно. Тогда-то мы и узнали слово «кластер». Но как бы красиво это слово не звучало, всё равно приходится технически объединять разрозненные серверы в единое целое – тот самый кластер. По городам и весям мы добрались до наших узлов в моём предыдущем опусе. А сегодня мой рассказ пойдёт о том, как делят нагрузку между членами кластера системные интеграторы, и как это сделали мы.



Внутри публикации вас также ждёт бонус в виде трёх сертификатов на месячную подписку ivi+.
Читать дальше →

30 чудных библиотек для PHP программистов

Reading time6 min
Views105K
Предлагаю читателям «Хабрахабра» перевод публикации «30 Amazing PHP Libraries for Programmers and Developers». Авторы собрали несколько удивительных PHP-библиотек, которые помогут реализовать некоторые классные вещи, не прилагая много усилий. Цель обзора состоит в том, чтобы преподнести что-то новое, поэтому список не включает популярные библиотеки.
Читать дальше →

There is no silver bullet, или как мы от водопада до Канбана через скрамовые аджайлы дошли

Reading time5 min
Views13K
В данной статье я бы хотел поделиться опытом использования разных методик управления разработкой (Waterfall, Scrum, Kanban) в компании Acronis и рассказать, чем был обусловлен выбор той или иной методики или практики.

Для начала пара вводных слов. Цикл разработки продукта у нас в Acronis, как правило, длится от полугода до года. В разработке принимает участие команда из 40-45 человек. Сам продукт является системным приложением, а основная разработка идет на C++. Важный момент: продукт должен быть выпущен точно в срок не позднее фиксированного момента времени (да-да, и такое бывает).

Последнее детище нашей компании – ATI, в миру известный как Acronis True Image. Этот продукт довольно давно в разработке – настолько, что мы успели написать о нем на Хабр не одну, не две и даже не три статьи (четвертую найдите сами). Команда разработчиков ATI достаточно внушительная, а потому у нас накопился большой опыт управления подобными проектами.

Итак, когда-то очень давно у нас была классическая «водопадная» модель разработки:
Требования -> Дизайн -> Реализация -> Тестирование и стабилизация -> Поддержка.
Читать дальше →

Information

Rating
5,963-rd
Location
Санкт-Петербург и область, Россия
Date of birth
Registered
Activity