Рубрика: Разработчикам

6de82e4fa8494d95b7184197a589b7c9

Без ТЗ: почему клиент не хочет его

«У нас очень маленький и простой проект»
«Это коммерческая тайна, мы вам не расскажем»
«Сначала скажите сколько стоит!»
«Почему мы должны платить за то, что нужно вам?»
«Мы хотим увидеть варианты!»
«А вдруг у нас изменится концепция»
«Нам нужен точный клон этого…»
«Придумайте сами — вы же специалисты!»
«Мы сами напишем/написали ТЗ»
«Другие программисты не примут ваше ТЗ»

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

WebAssembly как киллер фича, и возможный убийца 2D Canvas

я не удивлюсь если выход в массы этой технологии в связке с “Unity”подобными движками – оставит далеко позади фронтенды построенные на канвасе в плане быстродействия = комфортности работы пользователя.
технологии на самом деле редко становятся киллер фичей ПО. но, бывает. и WebAssembly для задач где только канвасом рисовать – может оказаться именно такой.

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

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

Менеджерско-программистская выжимка за 17 лет в отрасли

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

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

«Мир есть совокупность фактов, а не вещей»: Витгенштейн и операционно-ориентированное программирование

За каждым методом бизнес-логики стоит факт мира, который этот метод (чаще не в одиночку) моделирует. Факты программирования – это операции: дальше будем называть их так. Делая метод членом класса, ООП требует от нас привязать операцию к объекту, что невозможно, потому что операция – это взаимодействие объектов (двух и более), кроме случая унарной операции, чистой рефлексии. Метод ВыдатьЗарплату (PaySalary) может быть отнесен к классам Сотрудник (Employee), Касса (Cash), БанковскийСчет (Account) – все они равнозначны в праве владения им. Дилемма о расположении методов сопутствует всему процессу разработки: неловкое ее разрешение может оказаться критичным и даже фатальным.

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

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

Вредные советы по постановке задач и описанию требований

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

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

Java vs Node.js – быстродействие

Интересная практическая статья, рассказанному верю.

Отрывок:

В общем, все, что можно было сделать малой кровью, сделано. Уже начали подумывать о приобретении второго-третьего сервера и настраивать балансировку.
Но как-то вечером в разговоре с q4x2 у нас вышел спор о том, что не все платформы одинаково полезны. А если проще, то он меня убеждал, что все наши беды из-за NodeJS, и что он готов сделать свой вариант сервера на Java, который “порвет” Node на британский флаг. Я в этом сильно сомневался,

Не успел Node-сервер обрадоваться двум новым ядрам, как q4x2 выкатил свой Java-сервер. Код мне напомнил самый первый вариант Node-сервера: все в одном файле в процедурном стиле. Код мы постепенно привели к божескому виду, но все равно было видно (после избавления от детских болячек), насколько этот вариант быстрее Node. В цифрах загрузки CPU — примерно в четыре раза. В часы пик, при ~500 запросах/сек основным java-процессом используется одно ядро. Для Node-версии на четырехядернике такая нагрузка была недостижимой, а на шестиядернике она была очень близка к предельной.

хабр: Как мы делали XVM — популярный мод для World of Tanks. Часть вторая: развитие серверной части

UI, React+Redux: Реактивное программирование на пальцах

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

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

Превращение WordPress в фреймворк

  • One of the time-consuming part of developing WordPress plugins and themes is creating setting pages. As you more and more write plugins and themes, you will soon realize major part of code can be reused. Admin Page Framework aims to provide reusable code that eliminates the necessity of writing repeated code over and over again.
    Admin page framework
  • WP MVC is a WordPress plugin that allows developers to use a MVC framework to create plugins. It is a full-fledged framework with architecture that’s similar to that of CakePHP or Ruby on Rails. Developers can consequently use it to rapidly build sites that take advantage of both WordPress’s large native functionality and all of the many advantages of an MVC framework.
    WP MVC
  • Прикручиваем Themosis и получаем Laravel Первый взгляд на Themosis, фреймворк для WordPress разработчиков

12 Popular Frameworks to Speed up your WordPress Development

edabf20b88277cf9e1d2e8f70e4b69be

Javascript-фреймворки

Javascript-фреймворки – это круто. Очень. И – больно.

И эти тысячи фреймворков, каждый из которых как две капли воды зачастую похож на друг друга, особенно во flux фреймворках — это прямо «придумай свое название точка JS». И из этого ада там, где Google Web Toolkit уже давно умер, надо как-то выбрать. Блин, что делать? Конечно, надо было что-то подумать, как бы посмотреть, как другие где-то что-то выбирают в Интернете, залезть и где-то спереть результат.
Хабр: Javascript-фреймворки: должен остаться только один

Qooxdoo

Забытый, но живой фреймворк, из старого поколения. В котором была предпринята попытка полностью уйти от работы с HTML, и работать с web UI как с привычным GUI.
Qooxdoo. Разрабатываем TODO List

Из старого поколения еще можно назвать Dojo Toolkit. Но он более сложный, чем Qooxdoo, и не такой GUIевый.

Каково оно, учить JavaScript в 2016

14265098_10153976410378525_1551213811755790513_n

джун-мидл-синьор

<xxx> В похапе мидл – это человек, который может сделать весь проект от начала до конца сам, без ансамбля. Соответственно, джуниор – который не может, синьор – который не будет.

Юзабилити-исследование фильтров на сайтах интернет-магазинов

только 16% сайтов могут похвастаться отличной системой фильтров, где доступны различные способы сортировки, преобладает сбалансированный дизайн и логика работы отвечает ожиданиям пользователя;
чеклист для фильтров на сайтах

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

Почему эти ваши модные NoSQL решения не так уж хороши

Тогда что же выбрать в качестве основной СУБД для нового проекта? Совет стандартный — возьмите любую РСУБД по вкусу. Если конкретнее, то я бы рекомендовал PostgreSQL, но в крайнем случае и какая-нибудь MariaDB, пожалуй, будет как минимум не хуже Монги. Затем масштабируйтесь вертикально до тех пор, пока это позволяет кошелек. Может так получиться, что для всего проекта вам будет достаточно одного сервера, плюс еще одной реплики для фейловера. Если это ваш случай, то вам крупно повезло, поздравляю! Иначе все тоже не так уж плохо, так как обычно 90% операций идут только на чтение, и их можно спокойно распределить по множеству реплик.

Вот если вы скоро упретесь на запись, только тогда следует подумать о разбиении базы данных на несколько, возможно, даже с шардингом. Хотя лучше обойтись без него, просто имея несколько совершенно независимых баз. К этому моменту вы уже будете хорошо понимать, что и куда можно перенести или как лучше пошардить, чего нельзя сказать о ранних этапах развития проекта. Также вы будете понимать, какие данные и в какое NoSQL решение можно перенести, если, конечно, в этом вообще есть смы

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

6 вопросов, которые спасут проект

Недавно знакомый предприниматель поделился со мной своей бедой: «Не знаю, что делать с менеджерами проектов. Половину проектов мы делаем плохонько, а вторую половину – еще хуже. Несмотря на два десятка KPI и регулярную отчетность, они все равно не выявляют проблемы на ранних стадиях, и поэтому мы тратим вдвое больше ресурсов. Кроме того, слишком часто мы вынуждены идти на поводу у заказчиков и снижать выручку проекта. И ведь ПМ-ы – парни все хорошие и стараются, но получается все равно кое-как».

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

Так что же делать? Куда смотреть? Как понять, что в проекте уже что-то идет не так? И что именно?

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

Класс объектов или объекты класса?

Пусть у нас есть конкретная машина. КОНКРЕТНАЯ! Не тип и не класс машин, А именно конкретная машина, на которую я указываю своим указательным пальцем. Хозяин этой машины утверждает, что его машина состоит из множества компонентов, в том числе из колес. Он говорит, что его машина состоит из пяти колес (одно запасное). Замечу сразу, что хозяин говорит: «состоит из», а не «включает в себя».

Вопрос: слушая хозяина машины, что мы себе представляем: то, что машина состоит из колес одного класса?

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

Люди не умеют оценивать

Исследователи попросили несколько групп разработчиков дать оценку некоторых программистких задач, описанных в спецификации. В среднем, группы оценили работу в 100 часов (я пропорционально привел все данные в исследовании к круглым цифрам, чтобы было проще запоминать).

После чего, начались следующие эксперементы:

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

14 наиболее распространенных ошибок в области управления проектами

Недостаток правильных ресурсов, отсутствие навыков работы.
Отсутствие опытных руководителей.
IT-компании не следуют стандартам.
Дополнения, вносимые в процесс.
Не отслеживаются изменения в процессе работы над проектом.
Отсутствие точной и актуальной информации о состоянии проекта.
Игнорирование возникающих проблем.
Неправильно установленные сроки.
Не уделяется внимание взаимозависимости проектов.
Не рассматривается Закон Мерфи.
Необходимо следить за происходящими изменениями.
Незаконченность графика.
IT не отталкивается от возможности увеличения сроков завершения проекта.
Отсутствие непосредственного общения с авторами проекта и заинтересованными сторонами.

Читать дальше
jooctrine-doctrine-orm-in-joomla-4-638

Вьетнам компьютерной науки

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

оригинал: http://citforum.ck.ua/database/articles/vietnam/

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