Похоже, я не умею вести собственный блог, но зато неплохо пишу в блог компании, поэтому просто оставлю ссылки на свои статьи здесь
PHPUnit для тестирования WordPress плагинов. Часть1: Установка
PHPUnit для тестирования WordPress плагинов. Часть 2: Как писать свои тесты
Публикация новой версии WordPress плагина с помощью Github Actions и SVN
PHPUnit для тестирования WordPress плагинов. Часть1: Установка
PHPUnit для тестирования WordPress плагинов. Часть 2: Как писать свои тесты
Публикация новой версии WordPress плагина с помощью Github Actions и SVN
OnePix RU
PHPUnit для тестирования в WordPress. Часть 1: Установка
PHPUnit в WordPress плагинах. PHPUnit — фреймворк для Unit тестирования приложений на PHP и его можно использовать с WordPress
Любопытно начал меняться вектор моей работы в компании. За две недели произошло много интересного:
1. Начал работать с новым стеком технологий.
Этот стек крутится вокруг PHP фреймворка Laravel и всего его окружения. У меня даже не было особо времени на изучение, поэтому изучаю сразу в бою. Да, код получился не самый лучший, но и проект на бекенде несложный — админка с созданием страниц, постов и получением информации из формы на сайте. Сейчас этот проект разворачиваю на сервере, так что еще понадобились знания nginx. И уже начался проект, где есть Docker. Пару лет назад я его даже изучал, о чем писал здесь, но тогда эти знания не пригодились
2. Теперь использую ChatGPT для помощи в написании кода.
Много раз слышал, что ChatGPT великолепен для разработчиков-джунов, и теперь я знаю об этом на практике. Так как на Laravel я джун, то мне иногда бывает трудно понять какую функциональность фреймворка где и как лучше применить. Но нейросетка даже по не самому точному и подробному описанию задачи выдаст рабочий код. К этому коду стоит относиться скептически, он часто не оптимальный, его можно улучшить, но жизнь все равно упрощает
3. Теперь я официально на должности Backend тимлид
Когда я начинал этот чат, даже подумать не мог, что меня кто-то будет называть тимлидом, и я смогу управлять проектами, но прошло 4.5 года и вот оно. Даже есть моя фоточка с должностью на сайте OnePix. При этом я остаюсь программистом и пишу код. Но я всё еще далек от своего идеала и программиста, и тимлида, еще многое предстоит изучить.
4. Провожу технические собеседования в компанию бекенд разрабов
Вообще случайно попал в эту часть жизни компании. Спасибо моему коллеге Владу, который взял меня с собой на проведение собеса, показал как оно должно быть. Теперь я провожу технические собеседования в соло. Сейчас мне доставляет удовольствие общаться с кандидатами, надеюсь, это не превратится в рутину
1. Начал работать с новым стеком технологий.
Этот стек крутится вокруг PHP фреймворка Laravel и всего его окружения. У меня даже не было особо времени на изучение, поэтому изучаю сразу в бою. Да, код получился не самый лучший, но и проект на бекенде несложный — админка с созданием страниц, постов и получением информации из формы на сайте. Сейчас этот проект разворачиваю на сервере, так что еще понадобились знания nginx. И уже начался проект, где есть Docker. Пару лет назад я его даже изучал, о чем писал здесь, но тогда эти знания не пригодились
2. Теперь использую ChatGPT для помощи в написании кода.
Много раз слышал, что ChatGPT великолепен для разработчиков-джунов, и теперь я знаю об этом на практике. Так как на Laravel я джун, то мне иногда бывает трудно понять какую функциональность фреймворка где и как лучше применить. Но нейросетка даже по не самому точному и подробному описанию задачи выдаст рабочий код. К этому коду стоит относиться скептически, он часто не оптимальный, его можно улучшить, но жизнь все равно упрощает
3. Теперь я официально на должности Backend тимлид
Когда я начинал этот чат, даже подумать не мог, что меня кто-то будет называть тимлидом, и я смогу управлять проектами, но прошло 4.5 года и вот оно. Даже есть моя фоточка с должностью на сайте OnePix. При этом я остаюсь программистом и пишу код. Но я всё еще далек от своего идеала и программиста, и тимлида, еще многое предстоит изучить.
4. Провожу технические собеседования в компанию бекенд разрабов
Вообще случайно попал в эту часть жизни компании. Спасибо моему коллеге Владу, который взял меня с собой на проведение собеса, показал как оно должно быть. Теперь я провожу технические собеседования в соло. Сейчас мне доставляет удовольствие общаться с кандидатами, надеюсь, это не превратится в рутину
👍5
В прошлом году мне нравилось писать статьи, выходило примерно по 1 статье в месяц и публиковались они на сайте onepix. Перед публикацией я несколько раз вычитывал статью, вносил кучу правок и в целом тратил на каждую много времени. Сейчас времени стало меньше и вместо статей я завел локальную базу знаний в obsidian
Obsidian — это блокнот на максималках. Каждая страница в нем представлена в markdown формате и очень удобна для редактирования и просмотра. Килерфичей в obsidian считается возможность ссылаться из одной записи на другую, получая в итоге собственную вики, которая хранится на локальном компьютере, а не где-то в интернете
Свою вики по проге я пишу уже пару месяцев по мере изучения нового и закрепления старого. И некоторые из заметок получаются достаточно качественными, чтобы ими можно было поделиться, только до звания статей они не дотягивают ни по объему, ни по формату. Поэтому я завел себе максимально простой блог, где вместо базы данных .md файлы из obsidian blog.ddaniel.ru, закинул туда пару заметок
Исходники блога и сами заметки опубликованы у меня на гитхабе, хоть немного подниму на нем активность. Сайт в целом еще сырой, собрал его за ночь и утром опубликовал, но изначальная идея реализована.
И реализована просто, на backend'е роутинг от
Obsidian — это блокнот на максималках. Каждая страница в нем представлена в markdown формате и очень удобна для редактирования и просмотра. Килерфичей в obsidian считается возможность ссылаться из одной записи на другую, получая в итоге собственную вики, которая хранится на локальном компьютере, а не где-то в интернете
Свою вики по проге я пишу уже пару месяцев по мере изучения нового и закрепления старого. И некоторые из заметок получаются достаточно качественными, чтобы ими можно было поделиться, только до звания статей они не дотягивают ни по объему, ни по формату. Поэтому я завел себе максимально простой блог, где вместо базы данных .md файлы из obsidian blog.ddaniel.ru, закинул туда пару заметок
Исходники блога и сами заметки опубликованы у меня на гитхабе, хоть немного подниму на нем активность. Сайт в целом еще сырой, собрал его за ночь и утром опубликовал, но изначальная идея реализована.
И реализована просто, на backend'е роутинг от
Symfony
без всего лишнего, а на frontend'е bootstrap 5
для стилизации и markdown-it
для рендера markdown в html. Расскажу о технологиях подробнее позже, когда доведу до ума их использование👍4
Сегодня засел рисовать логотип. Он для блога понадобился, и на канале захотелось обновиться. С графикой у меня плохо, и за всю жизнь рисовал только в paint, но меня выручила figma, в которой оказалось удобно работать с векторной графикой. Сначала вообще забыл про фигму и вспомнил только, когда поставил скачиваться adobe illustrator, с которым я бы просто разбирался пару дней
Логотип вдохновлен современными иконками нейросетей, на которых изображена рандомная фигура, например у chat gpt это цепь в форме шестиугольника. В моем случае это изначально был тупо "куб с окошками". Чтобы лого не устарело еще до своего появления добавил в него букву D. Вроде, Лебедев говорил, что лучшее имя бренда - это фамилия. В общем понабрал идей отовсюду и собрал что-то свое (в духе типичного программиста)
А главное в минималистичном логотипе - это возможность сохранить его в svg и растягивать до любого размера. Хотя в тг этого и не увидеть, потому что здесь только png с jpeg можно поставить на фото канала.
Еще svg анимировать можно. Но до этого доберусь через пару-тройку лет
Логотип вдохновлен современными иконками нейросетей, на которых изображена рандомная фигура, например у chat gpt это цепь в форме шестиугольника. В моем случае это изначально был тупо "куб с окошками". Чтобы лого не устарело еще до своего появления добавил в него букву D. Вроде, Лебедев говорил, что лучшее имя бренда - это фамилия. В общем понабрал идей отовсюду и собрал что-то свое (в духе типичного программиста)
А главное в минималистичном логотипе - это возможность сохранить его в svg и растягивать до любого размера. Хотя в тг этого и не увидеть, потому что здесь только png с jpeg можно поставить на фото канала.
Еще svg анимировать можно. Но до этого доберусь через пару-тройку лет
👍5
За несколько лет работы программистом, я не проходил курсы никакие it курсы, хотя манящей рекламы было и остается очень много. Тратил деньги только на доступы к закрытым статьям или тренажерам, но относительно стоимости тех же курсов потратил копейки
С понедельника это перестанет быть правдой. Я смог попасть на "Хардкорный курс PHP" от Валентина Удальцова, автора множества докладов и известного по каналам Пых и PHP Point. На курсе будет рассмотрена куча тем для middle PHP разработчиков, которые хотят стать senor'ами - мой случай
Круто что курс полностью построен вокруг фреймворка Symfony, но с которым я знаком очень поверхностно. Так что уже сейчас изучаю документацию и пробую практики Symfony в деле
С понедельника это перестанет быть правдой. Я смог попасть на "Хардкорный курс PHP" от Валентина Удальцова, автора множества докладов и известного по каналам Пых и PHP Point. На курсе будет рассмотрена куча тем для middle PHP разработчиков, которые хотят стать senor'ами - мой случай
Круто что курс полностью построен вокруг фреймворка Symfony, но с которым я знаком очень поверхностно. Так что уже сейчас изучаю документацию и пробую практики Symfony в деле
👍4
Идея блога на markdown файлах мне разонравилась после релиза ровно трех заметок. Такой вариант оказался более неповоротливым чем я думал. Последней каплей стало то, что время создания файлов-заметок менялось при операциях на сервере, которые. казалось бы, не затрагивают эти файлы вообще. В итоге я понял, что мне нужна небольшая админка для управления контентом, но не WordPress установить, а собрать самостоятельно на PHP и его библиотеках.
Новая версия блога еще в процессе, но я уже притащил в нее много новых для меня технологий:
Postgres — база данных, которая становится все популярнее и лучше, и в какой-то момент должна обойти MySQL по популярности. Я ее выбрал, потому что никогда раньше с ней не сталкивался, хотя на моем небольшом объеме данных нет разницы какую БД использовать
Doctrine ORM — абстракция над базой данных в PHP. Позволяет работать с базой данной не через SQL запросы, а как с PHP объектами и особо не думать, какая база спрятана за абстракцией. Плюс решает проблемы безопасности и настройки связей между сущностями. Документация только не особо для новичков сделана, много инфы даже по базовым принципам искал по гайдам и статьям
Phinx — инструмент для миграции баз данных. Позволяет описать как должна выглядеть база данных и одной командой создать ее. А также описать какие изменения требуются в уже существующей бд и добавить их автоматически без полного пересоздания бд.
Docker — первый проект, который я успешно поместил в докер контейнеры для одинакового запуска на разных машинах. Первая попытка была примерно 4 года назад, но тогда и ручки были кривые и поддержка винды у докера была гораздо хуже. В этот раз все завелось удивительно быстро и без особых проблем. Так что новая версия сайта будет работать на связке из 4 контейнеров - php:8.3, nginx:1.24, postgres:16.2 и pgadmin4:8.5.
В целом это базовые инструменты для PHP разработчика, но не для WordPress, поэтому знакомиться с ними я ними начал только сейчас. И пока писать блог, мне интереснее чем писать в него.
Новая версия блога еще в процессе, но я уже притащил в нее много новых для меня технологий:
Postgres — база данных, которая становится все популярнее и лучше, и в какой-то момент должна обойти MySQL по популярности. Я ее выбрал, потому что никогда раньше с ней не сталкивался, хотя на моем небольшом объеме данных нет разницы какую БД использовать
Doctrine ORM — абстракция над базой данных в PHP. Позволяет работать с базой данной не через SQL запросы, а как с PHP объектами и особо не думать, какая база спрятана за абстракцией. Плюс решает проблемы безопасности и настройки связей между сущностями. Документация только не особо для новичков сделана, много инфы даже по базовым принципам искал по гайдам и статьям
Phinx — инструмент для миграции баз данных. Позволяет описать как должна выглядеть база данных и одной командой создать ее. А также описать какие изменения требуются в уже существующей бд и добавить их автоматически без полного пересоздания бд.
Docker — первый проект, который я успешно поместил в докер контейнеры для одинакового запуска на разных машинах. Первая попытка была примерно 4 года назад, но тогда и ручки были кривые и поддержка винды у докера была гораздо хуже. В этот раз все завелось удивительно быстро и без особых проблем. Так что новая версия сайта будет работать на связке из 4 контейнеров - php:8.3, nginx:1.24, postgres:16.2 и pgadmin4:8.5.
В целом это базовые инструменты для PHP разработчика, но не для WordPress, поэтому знакомиться с ними я ними начал только сейчас. И пока писать блог, мне интереснее чем писать в него.
👍2
Попользовался радостно докером целый месяц, но сегодня докер решил забаниться в России. Печаль, беда... *звук включения vpn
Как раз затарил vpn от Касперского, до этого обходился только бесплатным плагином в браузере. Но сейчас появились приложения на компе и телефоне, которыми невозможно пользоваться без маскировки под жителя Европы. Так что еще одна подписка в кармане
А на сервере хочу настроить обход через хуёкер.io, чисто из-за названия. На прод такое тянуть не стоит, но кто меня остановит в собственном проекте
Как раз затарил vpn от Касперского, до этого обходился только бесплатным плагином в браузере. Но сейчас появились приложения на компе и телефоне, которыми невозможно пользоваться без маскировки под жителя Европы. Так что еще одна подписка в кармане
А на сервере хочу настроить обход через хуёкер.io, чисто из-за названия. На прод такое тянуть не стоит, но кто меня остановит в собственном проекте
👍1
Переезд блога с markdown файлов на полноценную админку я разделил на три этапа, которые условно названы 1) Требуемое 2) Нужное и 3) Желательное. Далее каждый этап разбит на спринты, чтобы примерно понимать, когда я смогу довести сайт до личного идеала. В итоге получилось, что сайт будет готов к концу лета
А сейчас закончен первый этап "Требуемое". Требуемым была возможность публикации постов и объединение их по тегам. Еще была идея добавить категории, но они бы просто дублировали теги - так что вычеркнуто. Также добавлены хлебные крошки для более удобной навигации и подсветка кода в постах
В общем, продолжаю собирать WordPress у себя дома. Только в моей реализации все работает очень быстро по сравнению с таким же сайтом на WP. Страница с редактированием поста сохраняется настолько быстро, что не всегда понятно "а сохранилось ли?". В дальнейшем планирую добавить кеширование контента в html файлы, чтобы php вообще не запускался и только веб-сервер отдавал контент
Пока тестировал новую версию сайта, дописал и релизнул пару своих заметок: Принципы SOLID
и PHP стандарты форматирования кода. Хотя посты можно писать прямо в админке с предпросмотром, я продолжаю использовать Obsidian, копируя из него контент на сайт
А сейчас закончен первый этап "Требуемое". Требуемым была возможность публикации постов и объединение их по тегам. Еще была идея добавить категории, но они бы просто дублировали теги - так что вычеркнуто. Также добавлены хлебные крошки для более удобной навигации и подсветка кода в постах
В общем, продолжаю собирать WordPress у себя дома. Только в моей реализации все работает очень быстро по сравнению с таким же сайтом на WP. Страница с редактированием поста сохраняется настолько быстро, что не всегда понятно "а сохранилось ли?". В дальнейшем планирую добавить кеширование контента в html файлы, чтобы php вообще не запускался и только веб-сервер отдавал контент
Пока тестировал новую версию сайта, дописал и релизнул пару своих заметок: Принципы SOLID
и PHP стандарты форматирования кода. Хотя посты можно писать прямо в админке с предпросмотром, я продолжаю использовать Obsidian, копируя из него контент на сайт
👍4
Тестирование программы - это вторая по важности часть процесса разработки после написания кода. Тесты можно разделить на ручные и автоматические, и вторые представляют для меня наибольший интерес, потому что ручками проверять долго, муторно и неинтересно
Пару недель назад вернулся к активному изучению материалов по автоматическому тестированию. Хотя у меня уже и был опыт написания unit тестов для отдельных частей приложения - этого недостаточно, чтобы покрыть код тестами в достаточной мере, для его безболезненных изменений
Для начала изучения тестирования идеально подходит книга Принципы юнит-тестирования. Настолько идеально, что множество остальных материалов, которые я нашел, в открытую или не очень ссылаются на эту книгу
Далее можно углубляться в тесты под свою технологию. В моем случае - это PHP, и для него наиболее популярный фреймворк для тестов - это PHPUnit. С его помощью можно создавать как простые unit тесты, так и сложные интеграционные
Еще меня интересует тестирование интерфейса в браузере. Для этого есть множество конкурирующих js фреймворков. Меня привлекли jest и cypress и пока не сделал выбор в пользу какого-то одного, потому что при начальном использовании они по сути одинаковы.
После того как написаны первые тесты, важно организовать их автоматический запуск перед внесением изменений в репозиторий с кодом, обычно это делается в CI процессах. Если этого не сделать, то есть вероятность, что тесты случайно или намерено не будут запускаться . А если тест не запускается, то зачем его было вообще писать? На работе автоматизация настроена с помощью GitLab CI, а для собственных я предпочитаю GitHub CI, но в обоих вариантах невозможно внести изменения в код, пока все тесты не пройдены успешно
Пару недель назад вернулся к активному изучению материалов по автоматическому тестированию. Хотя у меня уже и был опыт написания unit тестов для отдельных частей приложения - этого недостаточно, чтобы покрыть код тестами в достаточной мере, для его безболезненных изменений
Для начала изучения тестирования идеально подходит книга Принципы юнит-тестирования. Настолько идеально, что множество остальных материалов, которые я нашел, в открытую или не очень ссылаются на эту книгу
Далее можно углубляться в тесты под свою технологию. В моем случае - это PHP, и для него наиболее популярный фреймворк для тестов - это PHPUnit. С его помощью можно создавать как простые unit тесты, так и сложные интеграционные
Еще меня интересует тестирование интерфейса в браузере. Для этого есть множество конкурирующих js фреймворков. Меня привлекли jest и cypress и пока не сделал выбор в пользу какого-то одного, потому что при начальном использовании они по сути одинаковы.
После того как написаны первые тесты, важно организовать их автоматический запуск перед внесением изменений в репозиторий с кодом, обычно это делается в CI процессах. Если этого не сделать, то есть вероятность, что тесты случайно или намерено не будут запускаться . А если тест не запускается, то зачем его было вообще писать? На работе автоматизация настроена с помощью GitLab CI, а для собственных я предпочитаю GitHub CI, но в обоих вариантах невозможно внести изменения в код, пока все тесты не пройдены успешно
👍3
Devник
На картинке в прошлом посте не просто так можно увидеть лого хабра, именно здесь я планирую выпускать статьи. После прочтения всех правил, которые только нашел, оказалось, что создавать контент не так уж элитарно и доступно каждому Первая отправленная статья…
Сегодня начал вторую попытку публикации поста на хабре. Первая попытка была неудачной больше трех лет назад и я даже не помню, о чем хотел рассказать.
В этот раз подготовил статью о функциях в PHP, так как оказалось, что далеко не все моменты общеизвестны. Описал обычные, анонимные, стрелочные функции и способы работы с ними.
Публикация сейчас лежит в приватной песочнице и ждет обновления статуса от админов хабра. При пришлой попытке, я даже скидывал схему модерации статьи:
- Вообще не будет опубликована
- Будет опубликована анонимно в песочнице
- Будет опубликована в основном хабре, а я получу возможность публиковать дальнейшие статьи без проверки админами.
Мне меня конечно интересует третий вариант. Но если получится хуже, то перенесу статью в свой блог. А сейчас сижу и жду
В этот раз подготовил статью о функциях в PHP, так как оказалось, что далеко не все моменты общеизвестны. Описал обычные, анонимные, стрелочные функции и способы работы с ними.
Публикация сейчас лежит в приватной песочнице и ждет обновления статуса от админов хабра. При пришлой попытке, я даже скидывал схему модерации статьи:
- Вообще не будет опубликована
- Будет опубликована анонимно в песочнице
- Будет опубликована в основном хабре, а я получу возможность публиковать дальнейшие статьи без проверки админами.
Мне меня конечно интересует третий вариант. Но если получится хуже, то перенесу статью в свой блог. А сейчас сижу и жду
👍4
Devник
Кажется началось)
Реально началось)
https://habr.com/ru/articles/831388/
Теперь буду работать над тем, чтобы эта статья не осталась единственной моей на хабре. А формат заметок оставлю для блога
https://habr.com/ru/articles/831388/
Теперь буду работать над тем, чтобы эта статья не осталась единственной моей на хабре. А формат заметок оставлю для блога
Хабр
PHP функции и способы их применения
В PHP становится все больше способов работы с функциями. Хотя ООП и является основной парадигмой для этого языка, процедурный и функциональный подходы тоже имеет право на жизнь в PHP. Давайте...
👍5
Многопоточные вычисления — один из вариантов решения тяжелых задач. Если нет возможности оптимизировать алгоритм, то можно разбить вычисления на несколько потоков и ускориться. Конечно нужен и компьютер, в котором больше, чем одно ядро, но сейчас даже дешевые сервера многоядерные
И у меня на примете есть несколько повторяющихся и долгих задач, которые можно было бы разбить на отдельные процессы и ускорить выполнение в 2-4 раза. Но я же работаю с PHP...
У PHP вроде бы и есть встроенные возможности для работы с отдельными процессами, а вроде они и устарели, а потом опять появились, а потом deprecated статус. А кто-то сделал свою библиотеку для этого, но она работает только с определенными версиями PHP
Так что сейчас закопался в этот материал. Планирую подготовить статью, если кнч наберется интересный материал, который заминусуют на хабре не с первой минуты. Потому что всегда же "можно уйти на Go, Node, Python - зачем тебе пыха?"
И у меня на примете есть несколько повторяющихся и долгих задач, которые можно было бы разбить на отдельные процессы и ускорить выполнение в 2-4 раза. Но я же работаю с PHP...
У PHP вроде бы и есть встроенные возможности для работы с отдельными процессами, а вроде они и устарели, а потом опять появились, а потом deprecated статус. А кто-то сделал свою библиотеку для этого, но она работает только с определенными версиями PHP
Так что сейчас закопался в этот материал. Планирую подготовить статью, если кнч наберется интересный материал, который заминусуют на хабре не с первой минуты. Потому что всегда же "можно уйти на Go, Node, Python - зачем тебе пыха?"
👍3
Слово дня — "Классянка", это перевод английского термина "Classitis". Означает ситуацию, когда в ООП коде используется слишком много мелких классов, которые стоит объединить в более крупные
Она случается либо, когда классы просто используются там, где лучше использовать обычные функции, либо, когда декомпозиция логики заходит слишком далеко и каждая строчка кода выносится в отдельный класс.
Антоним к классянке я не нашел, но это создание огромных классов без всякой декомпозиции, так что для себя буду называть это "Моноклассянкой"
В html верстке классянка тоже встречается при добавлении элементам страницы слишком большого количества классов. Хотя адептов Tailwind хлебом не корми, дай только классов побольше добавить
P.S. На фото видно, как классянку видит ChatGPT 4o
Она случается либо, когда классы просто используются там, где лучше использовать обычные функции, либо, когда декомпозиция логики заходит слишком далеко и каждая строчка кода выносится в отдельный класс.
Антоним к классянке я не нашел, но это создание огромных классов без всякой декомпозиции, так что для себя буду называть это "Моноклассянкой"
В html верстке классянка тоже встречается при добавлении элементам страницы слишком большого количества классов. Хотя адептов Tailwind хлебом не корми, дай только классов побольше добавить
P.S. На фото видно, как классянку видит ChatGPT 4o
👍3
Сразу после новогодних праздников начал работать над инструментами WordPress разработки. WP не подходит для серьезной разработки в чистом виде в отличие от полноценных фреймворков, а только дает набор функций и отпускает в свободное плавание. Идеально для небольших, быстрых проектов, но кошмар для долгой поддержки
Началось все с шаблона для разворачивания WordPress из Composer и Docker. Удивительно, но осенью у меня вполне успешно начало получаться писать Docker образы под проекты, хотя год назад я ненавидел контейнеры всей душой
В итоге получился стартовый проект Bedrock for OnePix, благодаря которому, развернуть WP проект можно на любой машине, где установлен Docker, да еще и парой кнопок. После нескольких лет мучений с локальными серверами это ощущается настоящим чудом
Далее началась переделка стартового шаблона для плагинов и тем под WordPress. В ход пошли инструменты статического анализа кода, плюс принципы SOLID и IoC, крч начал собираться небольшой фреймворк поверх WP. Сейчас в процессе написания документации под альфа версию этого дела
Для полноценной реализации этого фреймворка требуется осознать очень много информации. В основном сейчас копаю ядро WordPress и документацию Laravel, чтобы грамотно в первый перенести наработки второго. Но оно того стоит
Началось все с шаблона для разворачивания WordPress из Composer и Docker. Удивительно, но осенью у меня вполне успешно начало получаться писать Docker образы под проекты, хотя год назад я ненавидел контейнеры всей душой
В итоге получился стартовый проект Bedrock for OnePix, благодаря которому, развернуть WP проект можно на любой машине, где установлен Docker, да еще и парой кнопок. После нескольких лет мучений с локальными серверами это ощущается настоящим чудом
Далее началась переделка стартового шаблона для плагинов и тем под WordPress. В ход пошли инструменты статического анализа кода, плюс принципы SOLID и IoC, крч начал собираться небольшой фреймворк поверх WP. Сейчас в процессе написания документации под альфа версию этого дела
Для полноценной реализации этого фреймворка требуется осознать очень много информации. В основном сейчас копаю ядро WordPress и документацию Laravel, чтобы грамотно в первый перенести наработки второго. Но оно того стоит
👍4
Начал добираться до книг по программированию, которые откладывал на потом с прошлого года. Первая в списке — Программист-фанатик. Хотя, если честно, название из первой редакции нравится больше: «Моя работа досталась индусам (а всё, что получил я, — эта жалкая книжонка)». Не так лаконично, зато сразу понятно, в каком духе написано
Во второй редакции — 53 совета, как стать успешным программным инженером. Какие-то очевидны, какие-то не очень, но я решил не читать всё подряд, а идти по оглавлению и выхватывать те главы, что действительно цепляют
Пока больше всего зацепил совет «выходи за границы своего стека». Вроде банальщина, но сработала: поймал себя на том, что давно не трогал ничего, кроме PHP. И захотелось чего-то нового
Новым стало хорошо забытое старое. Решил вспомнить Haskell. В универе немного писал на нём, и тогда казалось, что это чисто для математики. А сейчас хочется взять что-то полезное для бизнес разработки. Меньше состояния, больше чистоты, меньше if'ов, больше композиции. Попробовать притащить что-то из этого в мой PHP-мир
Не пропадающее желание изучать и экспериментировать радует
Во второй редакции — 53 совета, как стать успешным программным инженером. Какие-то очевидны, какие-то не очень, но я решил не читать всё подряд, а идти по оглавлению и выхватывать те главы, что действительно цепляют
Пока больше всего зацепил совет «выходи за границы своего стека». Вроде банальщина, но сработала: поймал себя на том, что давно не трогал ничего, кроме PHP. И захотелось чего-то нового
Новым стало хорошо забытое старое. Решил вспомнить Haskell. В универе немного писал на нём, и тогда казалось, что это чисто для математики. А сейчас хочется взять что-то полезное для бизнес разработки. Меньше состояния, больше чистоты, меньше if'ов, больше композиции. Попробовать притащить что-то из этого в мой PHP-мир
Не пропадающее желание изучать и экспериментировать радует
👍4
Сейчас читаю Джейсона Шраера. Cначала проглотил «Кровь, пот и пиксели», теперь взялся за «Нажми Reset». Обе книги - интересная прогулка по закулисью игровой индустрии. С выводами, что разработка игр - это смесь искусства, хаоса и постоянной борьбы за выживание.
Особенно цепляет, как в геймдеве наука и искусство переплетены до неразделимости. И как разработчики пытаются не увязнуть в поиске той самой игры - уложиться в дедлайн, не потерять творческое начало и всё это на фоне давления издателей, увольнений и закрывающихся студий.
Но вот что интересно: вдохновиться - да. А пойти в геймдев - пожалуй, нет. Эти истории поднимают дух, но всё же это истории выживших. Иногда - еле выживших. А сколько историй так и не стало книгой, потому что всё закончилось тишиной.
В вебе тоже искусство можно найти. До сих пор тащусь от сайтов из подборок с www.awwwards.com или от www.windows93.net
Особенно цепляет, как в геймдеве наука и искусство переплетены до неразделимости. И как разработчики пытаются не увязнуть в поиске той самой игры - уложиться в дедлайн, не потерять творческое начало и всё это на фоне давления издателей, увольнений и закрывающихся студий.
Но вот что интересно: вдохновиться - да. А пойти в геймдев - пожалуй, нет. Эти истории поднимают дух, но всё же это истории выживших. Иногда - еле выживших. А сколько историй так и не стало книгой, потому что всё закончилось тишиной.
В вебе тоже искусство можно найти. До сих пор тащусь от сайтов из подборок с www.awwwards.com или от www.windows93.net
👍6🔥1
Уже лет десять на каждом углу говорят про машинное обучение, Data Science и искусственный интеллект, а я только сейчас наконец-то решил покопаться в этом изнутри. Начал с ML - как самой узконаправленной дисциплины в во всем DS.
Пока добрался только до научпопа и параллельно вспоминаю алгебру с матаном. Материалов, которые можно посмотреть для общего понимания огромное множество. Точно могу порекомендовать:
- Книга MACHINE LEARNING FOR ABSOLUTE BEGINNERS - название говорит само за себя
- Видео Нейросети. Самое простое и понятное объяснение с нуля с примерами. - первый раз наткнулся на этот канал. Здесь много про python, включая его применение в ML
- Серия видео от 3Blue1Brown DeepLearning - от них в универе часто смотрел видосы по матану, вернулся снова. По ссылке дубляж
Продолжаю выходить за границы своего стека, посмотрим, куда дойду
Пока добрался только до научпопа и параллельно вспоминаю алгебру с матаном. Материалов, которые можно посмотреть для общего понимания огромное множество. Точно могу порекомендовать:
- Книга MACHINE LEARNING FOR ABSOLUTE BEGINNERS - название говорит само за себя
- Видео Нейросети. Самое простое и понятное объяснение с нуля с примерами. - первый раз наткнулся на этот канал. Здесь много про python, включая его применение в ML
- Серия видео от 3Blue1Brown DeepLearning - от них в универе часто смотрел видосы по матану, вернулся снова. По ссылке дубляж
Продолжаю выходить за границы своего стека, посмотрим, куда дойду
👍3😁1