Pull to refresh
1
0
Павел @lifestyle

User

Send message

Автоматизируем теплицу на Linux

Reading time5 min
Views15K

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

Меня пригласили в биотехнологический комплекс РУП "Институт овощеводства" под Минском, где выращивают салат, базилик, лук, перец, огурцы, голубику и картофель, и где реализовано несколько проектов автоматизации. Моим гидом был Александр из LedFarm.by, отвечавший за светодиодное освещение.

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

Читать далее
Total votes 14: ↑12 and ↓2+15
Comments32

Еще немного про сервисный слой в PHP

Reading time7 min
Views28K

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

Сегодня мы поговорим об одном из способов организации бизнес логики - сервисном слое (он же service layer), когда и зачем его нужно применять, а также какие проблемы архитектуры он поможет решить. Примеры реализации будут показаны с использованием архитектурного паттерна MVC и фреймворка Laravel.

Читать далее
Total votes 10: ↑8 and ↓2+14
Comments19

Китайские LEGO-совместимые робототехнические конструкторы. На чем можно учить, когда нет официальных наборов

Reading time4 min
Views26K

Мы решили посмотреть, что же доступно из робототехнических конструкторов, совместимых с LEGO, на любимой многими китайской торговой площадке. И если выбор клонов и оригинальных аналогов LEGO System и Technic большой и достойного качества, то вот найти замену тому же EV3, становится не так просто. Но выход есть.

Читать далее
Total votes 19: ↑18 and ↓1+24
Comments35

Package-lock.json: немного о файле для идеальных деревьев

Reading time6 min
Views21K

Привет, всем!

Предполагаю, многие уже знакомы с «npm» (менеджер пакетов), файлом «package.json» и командой для установки пакетов «npm install». Тема моей на следующем шаге, когда после успешно выполненной команды «npm install» появляется файл «package-lock.json». Он создается для любых операций, в которых npm изменяет дерево «node_modules» или файл «package.json». Описывает точное дерево зависимостей, которое было сгенерировано, так что последующие установки могут генерировать идентичные деревья, независимо от промежуточных обновлений зависимостей.

О том, как это работает — мой туториал.

Читать далее
Total votes 18: ↑17 and ↓1+18
Comments3

Гексагональная архитектура и DDD на опыте интернет-магазина Спортмастер. Часть 1

Reading time9 min
Views16K

Всем привет! Меня зовут Денис Ежов, я тимлид команды интернет-магазина Спортмастер (далее ИМСМ) и по совместительству бэкенд-разработчик. Так сложилось (и так говорят), что гексагональная структура и DDD — это дорого и сложно. Но так ли это на самом деле? Мы в ИМСМ внедрили гексагональную архитектуру и DDD именно в том количестве, в котором эти подходы решали наши проблемы. Про то, какие у нас были проблемы и как мы их решали, я расскажу в этом посте. Под катом — про назначение бэкенда ИМСМ, история развития бэкенда ИМСМ и его проблемы. А ещё посмотрим, как мы в новой архитектуре постарались решить проблемы бэкенда, покажем примеры кода, а также то, как код ложится на архитектуру. 

Читать далее
Total votes 19: ↑16 and ↓3+15
Comments3

«Пиши, сокращай» для объявлений на поиске: применяем правила инфостиля (с примерами)

Reading time9 min
Views5.8K

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

Сегодня мы постараемся разобраться, как применять рекомендации из книги «Пиши, сокращай. Как создать сильный текст» при написании рекламных объявлений, чтобы сделать их более информативными и доходчивыми.

Читать далее
Total votes 9: ↑6 and ↓3+6
Comments6

Как настроить open-source мониторинг для вашей БД?

Reading time4 min
Views8.8K

Существует множество проприетарных сервисов мониторинга БД, но есть отличная альтернатива с открытым исходным кодом — Percona Monitoring and Management (PMM). Я подробно расскажу, как настроить мониторинг с его помощью.

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments5

Простое объяснение принципов SOLID

Reading time7 min
Views290K


Принципы SOLID — это стандарт программирования, который все разработчики должны хорошо понимать, чтобы избегать создания плохой архитектуры. Этот стандарт широко используется в ООП. Если применять его правильно, он делает код более расширяемым, логичным и читабельным. Когда разработчик создаёт приложение, руководствуясь плохой архитектурой, код получается негибким, даже небольшие изменения в нём могут привести к багам. Поэтому нужно следовать принципам SOLID.

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

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

Я буду объяснять SOLID самым простым способом, так что новичкам легче будет разобраться. Будем рассматривать принципы один за другим.
Читать дальше →
Total votes 46: ↑38 and ↓8+30
Comments201

Принципы Solid и как они помогают сделать код лучше

Reading time10 min
Views27K

Про принципы Solid написано немало, в том числе на Хабре. Показывали в картинках, рассказывали на примерах.  

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

Читать далее
Total votes 12: ↑8 and ↓4+4
Comments14

TypeScript в React-приложениях. 2. Как понимать типы

Reading time5 min
Views5.6K

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

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

Читать далее
Total votes 2: ↑2 and ↓0+2
Comments4

Пошаговая боевая система на примере JS

Reading time7 min
Views10K

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

Кто заинтересован - добро пожаловать под кат.

Идти под кат
Total votes 11: ↑8 and ↓3+8
Comments8

Что случается с металлоломом и зачем там хардкорное ИТ

Reading time9 min
Views34K
Вот приехал вагон лома, мы опускаем туда краном два огромных магнита и передвигаем ими внутри вагона. Так мы разгружаемся:



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

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

Естественно, поставщики не стремятся сильно очищать лом, потому что, чем больше там будет мусора, тем меньше металла нужно для поставки — это им выгодно. А потребители лома готовы мириться с порогами в 1,5-2 % мусора (это закреплено в ГОСТах и ТУ), но не больше.

И вот здесь на разгрузку ворвались наши цифровизаторы, очень быстро и очень весело решив проблему. Точнее, они решали одну проблему, а в результате получилось нечто даже более крутое.
Читать дальше →
Total votes 243: ↑241 and ↓2+298
Comments105

Алгоритмы для веб-разработчиков простыми словами

Reading time6 min
Views49K

Здравствуйте, друзья! Данным постом мы открываем цикл статей об алгоритмах и структурах данных.

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

Зачем мне алгоритмы? Я фронтендер!

Вы наверняка задумались: «А зачем мне нужно тратить своё время на изучение этих сложных алгоритмов, если я работаю с фронтендом? Как знание графов и бинарных деревьев поможет мне лучше отцентровать одну div-ку внутри другой div-ки?»

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

Многие веб-разработчики на таких форумах, как Reddit и Stack Overflow, отмечали, что, освоив даже на базовом уровне эти фундаментальные основы программирования, чувствовали себя увереннее, профессиональнее и писали более чистый и структурированный код.

Также это помогло им прокачать главный скилл разработчика – умение логически думать и решать сложные технические задачи.

Кстати, именно по этой причине многие крупные IT-компании требуют от своих потенциальных сотрудников знания фундаментальных основ computer science, к которым как раз относятся алгоримты и структуры данных, и с пристрастием спрашивают их на собеседованиях.

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

И на этой прекрасной ноте давайте перейдем к основной теме статьи.

Читать далее
Total votes 23: ↑19 and ↓4+19
Comments25

Как сделать так, чтобы новый сайт быстро добавился в поисковые системы Яндекс и Google и начал индексироваться?

Reading time7 min
Views20K

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

Берем в учет то, что сайт уже разработан и просто лежит где-то на тесте.

Честно сказать, задачка не из простых.

Итак, поехали: выберете тематику вашего сайта и точно определитесь с тем, что хотите продвигать. Это нужно для того, чтобы у вашего сайта в последствии было максимально релевантное доменное имя к основному запросу. Затем выберете доменное имя, это можно сделать на таких площадках как: nic.ru, reg.ru, beget.com/ru и многих других.

Читать далее
Total votes 29: ↑8 and ↓21-8
Comments4

Курс молодого бойца: ускоряем проекты на Битрикс, повышаем их отказоустойчивость

Reading time7 min
Views5.3K

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

Читать далее
Total votes 25: ↑24 and ↓1+26
Comments7

Превью сайта с разметкой Open Graph: как автоматически рендерить картинку

Reading time4 min
Views4.7K

Всем привет! Меня зовут Николай Каменев, я фронтенд-разработчик в Почтатехе. Мы разрабатываем UI для порталов и приложений Почты России.

Я хочу поделиться коротким гайдом, как автоматически рендерить og:image-изображения для превью сайтов.

Читать далее
Total votes 6: ↑6 and ↓0+6
Comments2

Фасетные фильтры: как готовить и с чем подавать

Reading time6 min
Views26K

О чем речь 


Как сделать фасетный поиск в интернет-магазине? Как формируются значения в фильтрах фасетного поиска? Как выбор значения в фильтре влияет на значения в соседних фильтрах? В поиске ответов дошел до пятой страницы поисковой выдачи Google. Исчерпывающей информации не нашел, пришлось разобраться самому. Статья описывает:

  1. как реагирует UI, когда пользователь использует фильтры;
  2. алгоритм формирования значений фильтров; 
  3. шаблоны запросов и структуры индекса ElasticSearch с пояснениями.

Здесь нет готовых решений. Скопировать и вставить не получится. Для решения собственной задачи придется вникнуть.


Читать дальше →
Total votes 4: ↑3 and ↓1+5
Comments7

Опыты с сертификатами — клиентскими и серверными

Reading time11 min
Views24K

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

К тому же, в собственной сети не так важен правильный сертификат, когда на всех клиентских устройствах можно предустановить свой доверенный корневой сертификат и подписывать им сертификаты внутренних ресурсов. Но у автора статьи просто был спортивный интерес и на досуге хотелось вникнуть в тему.

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments15

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity