Как стать автором
Обновить
-15
0
Bone @Bone

Пользователь

Отправить сообщение

80+ докладов и статей, которые запомнились PHP-сообществу в 2020 году

Время на прочтение7 мин
Количество просмотров12K

Недавно мы решили узнать, чем помимо пандемии 2020-й запомнится пхп-разработчикам — кто что читал, смотрел, над чем работал. Получив свыше 1500 ответов, мы сели их разбирать. Вот что получилось.

Читать далее
Всего голосов 25: ↑25 и ↓0+25
Комментарии1

Улучшение производительности vue приложения

Время на прочтение8 мин
Количество просмотров18K

У нас в TeamHood есть wiki. Там собралась коллекция рекомендаций, в том числе, по улучшению производительности тяжелого фронтенда на vue.js. Улучшать производительность понадобилось, потому что в силу специфики наши основные экраны не имеют пагинации. Есть клиенты, у которых на одной kanban/gantt доске больше тысячи вот таких вот карточек, все это должно работать без лагов.

В статье разобрано несколько редко упоминаемых техник из нашей wiki, которые помогут сократить излишний рендеринг компонентов и улучшить производительность.

Читать далее
Всего голосов 17: ↑17 и ↓0+17
Комментарии5

React: лучшие практики

Время на прочтение19 мин
Количество просмотров76K


Разрабатываете на React или просто интересуетесь данной технологией? Тогда добро пожаловать в мой новый проект — Тотальный React.

Введение


Я работаю с React уже 5 лет, однако, когда дело касается структуры приложения или его внешнего вида (дизайна), сложно назвать какие-то универсальные подходы.

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

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

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

Предлагаемые подходы не являются истинной в последней инстанции. Это всего лишь мое мнение. Существует много разных способов решения одной и той же задачи.
Читать дальше →
Всего голосов 10: ↑6 и ↓4+5
Комментарии6

Система управления иерархическими древовидными комментариями для Laravel

Время на прочтение9 мин
Количество просмотров4.9K

Пакет для фреймворка Laravel, который позволяет организовать управление древовидными комментариями. Используется симбиоз двух методов хранения иерархических структур — «Closure Table» и «Adjacency List».

Совместное применение методов «Closure Table» и «Adjacency List» позволяет: Минимизировать количество запросов к базе данных. Для извлечения ветки комментариев достаточно одного запроса, обеспечить высокую производительность, гарантировать целостность данных иерархи, работать с древовидными структурами без рекурсивных запросов.

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии9

Разработка приложений опираясь на методологию The Twelve-Factor App с примерами на php и docker

Время на прочтение12 мин
Количество просмотров11K


Для начала немного теории. Что такое The Twelve-Factor App?


Простыми словами, это документ призванный упростить разработку SaaS приложений, помогает тем что, осведомляет разработчиков и DevOps инженеров о проблемах \ практиках которые чаще всего встречались в разработке современных приложений.

Документ сформирован разработчиками платформы Heroku.

Методология двенадцати факторов(The Twelve-Factor App) может быть применена для приложений, написанных на любом языке программирования и использующих любые комбинации сторонних служб (backing services) (базы данных, очереди сообщений, кэш-памяти, и т.д.).
Читать дальше →
Всего голосов 6: ↑5 и ↓1+9
Комментарии7

Шаблоны проектирования с человеческим лицом

Время на прочтение32 мин
Количество просмотров498K

image


Шаблоны проектирования — это способ решения периодически возникающих проблем. Точнее, это руководства по решению конкретных проблем. Это не классы, пакеты или библиотеки, которые вы можете вставить в своё приложение и ожидать волшебства.


Как сказано в Википедии:


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

image Будьте осторожны


  • Шаблоны проектирования — не «серебряная пуля».
  • Не пытайтесь внедрять их принудительно, последствия могут быть негативными. Помните, что шаблоны — это способы решения, а не поиска проблем. Так что не перемудрите.
  • Если применять их правильно и в нужных местах, они могут оказаться спасением. В противном случае у вас будет ещё больше проблем.

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

Читать дальше →
Всего голосов 148: ↑134 и ↓14+120
Комментарии98

Матрица с идеями для стартапов

Время на прочтение2 мин
Количество просмотров48K
Буквально на днях Эрик Стромберг, бывший совладелец книжного сервиса Oyster, чуть более года назад проданного Google, рассказал о матрице, которая поможет вам найти идею для нового стартапа. Сама задумка создания подобной матрицы многим показалась чрезвычайно интересной. Пост Эрика, размещенный в его блоге на Medium, спровоцировал обширную дискуссию и вызвал интерес у мировых СМИ. Тем, кто еще не слышал об этой концепции, мы предлагаем ознакомиться с переводом резонансной публикации.


Читать дальше →
Всего голосов 25: ↑23 и ↓2+21
Комментарии37

Ищем знакомые лица

Время на прочтение15 мин
Количество просмотров64K
Привет

В статье я хочу познакомить читателя с задачей идентификации: пройтись от основных определений до реализации одной из недавних статей в данной области. Итогом должно стать приложение, способное искать одинаковых людей на фотографиях и, что самое главное, понимание того, как оно работает.
Wake up, Neo
Всего голосов 69: ↑69 и ↓0+69
Комментарии17

Машинное обучение — это легко

Время на прочтение7 мин
Количество просмотров346K
В данной статье речь пойдёт о машинном обучении в целом и взаимодействии с датасетами. Если вы начинающий, не знаете с чего начать изучение и вам интересно узнать, что такое «датасет», а также зачем вообще нужен Machine Learning и почему в последнее время он набирает все большую популярность, прошу под кат. Мы будем использовать Python 3, так это как достаточно простой инструмент для изучения машинного обучения.
Читать дальше →
Всего голосов 51: ↑44 и ↓7+37
Комментарии20

Создание архитектуры программы или как проектировать табуретку

Время на прочтение25 мин
Количество просмотров689K
Взявшись за написание небольшого, но реального и растущего проекта, мы «на собственной шкуре» убедились, насколько важно то, чтобы программа не только хорошо работала, но и была хорошо организована. Не верьте, что продуманная архитектура нужна только большим проектам (просто для больших проектов «смертельность» отсутствия архитектуры очевидна). Сложность, как правило, растет гораздо быстрее размеров программы. И если не позаботиться об этом заранее, то довольно быстро наступает момент, когда ты перестаешь ее контролировать. Правильная архитектура экономит очень много сил, времени и денег. А нередко вообще определяет то, выживет ваш проект или нет. И даже если речь идет всего лишь о «построении табуретки» все равно вначале очень полезно ее спроектировать.

К моему удивлению оказалось, что на вроде бы актуальный вопрос: «Как построить хорошую/красивую архитектуру ПО?» — не так легко найти ответ. Не смотря на то, что есть много книг и статей, посвященных и шаблонам проектирования и принципам проектирования, например, принципам SOLID (кратко описаны тут, подробно и с примерами можно посмотреть тут, тут и тут) и тому, как правильно оформлять код, все равно оставалось чувство, что чего-то важного не хватает. Это было похоже на то, как если бы вам дали множество замечательных и полезных инструментов, но забыли главное — объяснить, а как же «проектировать табуретку».

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

Данная статья является попыткой ответить на эти вопросы хотя бы в первом приближении.
Читать дальше →
Всего голосов 88: ↑85 и ↓3+82
Комментарии45

Всероссийская инженерная олимпиада для старшеклассников: BigData и Интеллектуальные энергетические системы

Время на прочтение23 мин
Количество просмотров15K


— Вовочка, бросай свои эксперименты с холодным ядерным синтезом, иди к ЕГЭ готовься.
— Ща, мам.

Олимпиады — это круто. Они позволили такому раздолбаю свободолюбивому и умном, как я, поступить в университет без экзаменов.

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

— Что вы сегодня на час опоздали?
— Да так, в универ поступали.

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

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

Недавно в ВДЦ «Орленок» прошел «тест-драйв» Всероссийской инженерной олимпиады. Участвовали 5000 детей со всей России, до финала дошли около 100 человек. Призов много, но самое полезное — по +10 очков к ЕГЭ.

Я за всем присматривал и готов поделиться своими впечатлениями.

Олимпиада шла по четырем профилям.

Про первые два профиля расскажу здесь (чуток задач и фоток), про вторые два — немного попозже на GT.
(UPDотчет про «Космические системы».)
Читать дальше →
Всего голосов 35: ↑29 и ↓6+23
Комментарии20

Telegram Site Helper 2.0 — чат помощник для сайта на основе Telegram

Время на прочтение4 мин
Количество просмотров100K


Здравствуйте. Меня зовут Андрей.
Летом прошлого года я опубликовал проект и статью "Чат-помощник на сайт с помощью Telegram за 15 минут". Идея проекта заключалась в том, чтобы реализовать на сайте всплывающий Чат-помощник, бэкэндом для которого (для чата) был бы набирающий популярность мессенджер Telegram.

На удивление проект довольно быстро стал набирать звезды на GitHub, а я — получать письма благодарности и просьбы о помощи в настройке от людей со всего света. Люди не могли запустить скрипт на своих хостингах: то set_time_limit(0) не поддерживается, то 503 ошибка, то пути не правильно указаны.
Вторая версия скрипта устанавливается намного проще и работает на основе WebHooks.
Читать дальше →
Всего голосов 41: ↑36 и ↓5+31
Комментарии53

40 механик для социальных игр

Время на прочтение4 мин
Количество просмотров30K
Разработчик игр Раф Костер (Raph Koster) составил всеобъемлющий список базовых правил, на которых основаны социальные отношения в играх (мультиплеер, параллельная игра и т.д.). Эти правила для разработчиков игры заменяют азбуку. Во многом они пересекаются с принципами игровой механики, которые уже обсуждались на Хабре.

Раф Костер приобрёл известность как создатель дизайна Ultima Online и креативный директор проекта Star Wars Galaxies, после чего основал собственную студию.
Читать дальше →
Всего голосов 102: ↑92 и ↓10+82
Комментарии33

SICP теперь по-русски! Часть третья

Время на прочтение1 мин
Количество просмотров12K
image
Перевод третьей лекции из курса «Структура интерпретация компьютерных программ».

Это самый известный курс по программированию за последние 25 лет; с 1980г читается в MIT, а с недавних пор что-то подобное читается и в Беркли.

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

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

Приятного просмотра!
Читать дальше →
Всего голосов 98: ↑94 и ↓4+90
Комментарии39

Flex Data Binding Tricks

Время на прочтение9 мин
Количество просмотров5.5K
Меньше года назад меня вовлекли в проект, для которого необходимо было писать клиента на Flex. Так как я был новичком в этом деле, то в процессе работы я находил что-то новое и совершенно неизвестное мне. В то время я и открыл для себя Flex Data Binding (связыванием данных). Я думаю, что каждый, кто работает с Flex очень скоро сталкивается с Data Binding.
Связывание данных заключается в том, что мы можем с легкостью связывать два объекта (источника данных) между собой, что позволяет поддерживать их синхронизацию. Примером может служить связывание между собой элементов пользовательского интерфейса путем создания некоторых правил поведения, что способствует созданию более интерактивного пользовательского интерфейса.
Имея некоторый опыт в этой области, я решил разобрать все типы механизма связывания данных во Flex. Думаю эта статья будет интересна не только новичкам, но и профессионалы почерпнут из неё что-нибудь для себя.
Ещё больше о data binding
Всего голосов 25: ↑25 и ↓0+25
Комментарии19

Профилирование и отладка php-приложений с помощью xhprof & FirePHP

Время на прочтение5 мин
Количество просмотров66K

Всем веб-разработчикам, особенно в высоконагруженных проектах, рано или поздно приходится сталкиваться с профилированием своих приложений. Конечно, все мы знаем xdebug, с помощью которого можно проводить отладку серверной части. Однако, в тяжелых RIA-приложениях значительно чаще приходится отлаживаться в связке фронтенда+бэкэнд, всякие ajax-запросы, скорость отработки конкретных скриптов и все такое прочее. И для этих задач есть довольно-таки не плохой набор инструментов. Это xhprof и firephp.
Читать дальше →
Всего голосов 60: ↑53 и ↓7+46
Комментарии22

Все о 960gs — отличном css-фреймворке для построения модульных сеток

Время на прочтение6 мин
Количество просмотров54K


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


Читать дальше →
Всего голосов 127: ↑112 и ↓15+97
Комментарии83

Создаем анимированные кнопки при помощи CSS3

Время на прочтение11 мин
Количество просмотров56K


В данной статье я хочу поделиться с вами некоторыми экспериментами по созданию анимированных кнопок при помощи CSS3. Идея заключается в создании анимированных ссылок с разными стилями, hover-эффектами и пр.

В данных примерах используются иконки с webiconset.com, а также шрифт от Just Be Nice.

Мы рассмотрим каждый пример и разберем как выглядит их HTML-структура и стили для разных состояний кнопок.

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

Чтобы не захламлять код в уроке я не буду использовать префиксы для различных браузеров. Их вы сможете увидеть в архиве с примерами.
Читать дальше →
Всего голосов 215: ↑207 и ↓8+199
Комментарии40

Переменные в Фотошопе или как импортировать внешние PSD-файлы влёгкую

Время на прочтение5 мин
Количество просмотров20K
Во время работы над крупными проектами с множеством макетов и видов объекта даже минимальное изменение в повторяющемся компоненте может потребовать времени. Проход по множеству макетов и подстройка цвета или начертания у подобного повторяющегося элемента может стать изнуряющим делом. Конечно же, если у вас есть подмастерье, выполняющий всю грязную работу за вас, то вы, определённо, везунчик, но что же делать нам, фрилансерам?

Неужели нам остаётся лишь сносить эту му́ку? Что ж, теперь нет! Недавно я обнаружил подход, который позволит дизайнерам распрощаться с открытием 23 PSD-файлов только ради смены цвета элемента в шапке. Вместо этого мы можем поступать разумно, как наши коллеги, разработчики, и импортировать внешние файлы при помощи кое-чего с названием «Variables (Переменные)».

Сие позволит поместить многократно используемый компонент в отдельный файл и просто импортировать его во все макеты. Теперь, когда нам понадобится внести изменение, мы будем просто вносить его в одном месте.
Читать дальше →
Всего голосов 72: ↑70 и ↓2+68
Комментарии37

Подборка 10 css3 кнопок

Время на прочтение4 мин
Количество просмотров91K
С каждым днем новые стандарты css3 и html5 всё более глубоко входят в жизнь верстальщиков и web-разработчиков, а браузеры с каждым днем становятся все более совместимыми с этими стандартами.



В связи с этим событием хотелось бы представить Вам подборку 10 css3 кнопок, которые смогут облегчить вам жизнь при верстке и создании web приложений.
Читать дальше →
Всего голосов 266: ↑227 и ↓39+188
Комментарии79

Информация

В рейтинге
5 440-й
Откуда
Россия
Дата рождения
Зарегистрирован
Активность