Пятиминутка PHP – Telegram
Пятиминутка PHP
2.86K subscribers
334 photos
26 videos
825 links
Подкаст о PHP, DBA, архитектуре, DevOps. Авторское мнение о современных трендах в веб-разработке и интересные беседы с гостями. Темы про СУБД, Linux, DevOps

Автор: @petrmyazin
Download Telegram
Отличная вводная статья о подходе к обновлениям с использованием Feature Flags: http://amp.gs/jBDVA
Forwarded from VK
VK запускает турнир по программированию искусственного интеллекта Russian AI Cup 🏆

Турнир пройдет в формате игры в жанре королевской битвы (Battle Royale). Участникам предстоит запрограммировать искусственный интеллект, который будет управлять ботами-волшебниками. Цель соревнований – остаться единственным выжившим.

Состязание пройдет с 7 по 31 июля на платформе All Cups. Принять участие смогут все желающие — от начинающих программистов до профессионалов. Регистрация уже открыта, первый этап соревнования пройдет 16-17 июля.
💩6👍1
Английский для разработчиков
Пятиминутка PHP
- В чём отличие преподавания английского языка для различных профессий (программисты, юристы, ученые...)?
- «Можно говорить грамотно, но неуместно»
- Английский для разработчика — отличается ли подход к обучению чисто программистов (кодеров) и тимлидов?
- Какие бывают уровни знания английского? A1, A2, B1, B2, C1, C2 — что всё это значит?
- Какого уровня достаточно для разработчика?
- А для тимлида или IT-менеджера?
- Сколько времени и усилий нужно для достижения этого уровня?
- Что такое Intermediate-плато и как его пройти?
- Культурный код и его значение уже на этапе собеседования
- Что не важно при обучении английскому языку?
- Как тренировать произношение?
- Насколько русский акцент понятен на слух?
- Грамматические ошибки: критичные и нет
- Самостоятельное обучение до уровня B2 — это реально?
- Рецептивные и продуктивные навыки
- Полезные инструменты и программы для изучения английского языка (в том числе внутри PhpStorm!)
- Пополнение словарного запаса по карточкам — насколько это эффективно?
👍8🔥2
Forwarded from Типичный программист
​​Интересная задумка для пет-проекта: игра «Камень, ножницы, бумага» в виде симуляции естественного отбора.

Очень напряжённое зрелище гарантированно.

#gamedev #кек
😁23👍6🔥5🌭1
Вдохновляющая история перехода к непрерывной поставке и частым релизам: http://amp.gs/jn8fL

В целом содержание статьи коррелирует с моим опытом, ставлю автору плюс и за проделанную работу и за отличную статью!
👍3
Forwarded from Пых (Валентин Удальцов)
В продолжение предыдущего поста предлагаю повторить наш опрос о ЗП. Сравним результаты с сентябрём 2020. Итак, пыхарь, сколько нынче получаешь в тысячах рублей?
Anonymous Poll
10%
<50
15%
50-100
18%
100-150
18%
150-200
15%
200-250
9%
250-300
5%
300-350
3%
350-400
1%
400-450
5%
>450
👍5👎2
Laravel Pint 🍺 — консольная утилита для форматирования кода, работает поверх PHP-CS-Fixer. Я пока не успел попробовать, сам пользуюсь ECS (который тоже поверх fixer’а), надо будет сделать сравнение. http://amp.gs/jnmLz
👍5
Помните фреймворк Phalcon, который как расширение к PHP (на языке Zephyr) и по тестам очень быстрый?

Я внезапно вспомнил и пошёл читать блог: в планах переписать на чистом PHP, но опционально можно будет установить расширение для ускорения http://amp.gs/jnp3u
🔥10👎2😁2
Forwarded from Russian Association of Software Architects (Eugene Lukianov)
💬 "Кто-то спросит: так ли уж часто читается наш код? Разве большая часть времени не уходит на его написание?

Вам когда-нибудь доводилось воспроизводить запись сеанса редактирования? В 80-х и 90-х годах существовали редакторы, записывавшие все нажатия клавиш (например, Emacs). Вы могли проработать целый час, а потом воспроизвести весь сеанс, словно ускоренное кино. Когда я это делал, результаты оказывались просто потрясающими.

Большинство операций относилось к прокрутке и переходу к другим модулям!

- Боб открывает модуль.
- Он находит функцию, которую необходимо изменить.
- Задумывается о последствиях.
- Ой, теперь он переходит в начало модуля, чтобы проверить инициализацию переменной.
- Снова возвращается вниз и начинает вводить код.
- Стирает то, что только что ввел.
- Вводит заново.
- Еще раз стирает!
- Вводит половину чего-то другого, но стирает и это!
- Прокручивает модуль к другой функции, которая вызывает изменяемую функцию, чтобы посмотреть, как она вызывается.
- Возвращается обратно и восстанавливает только что стертый код.
- Задумывается.
- Снова стирает!
- Открывает другое окно и просматривает код субкласса. Переопределяется ли в нем эта функция?
<...>
В общем, вы поняли. На самом деле соотношение времени чтения и написания кода превышает 10:1. Мы постоянно читаем свой старый код, поскольку это необходимо для написания нового кода.

Из-за столь высокого соотношения наш код должен легко читаться, даже если это затрудняет его написание. Конечно, написать код, не прочитав его, невозможно, так что упрощение чтения в действительности упрощает и написание кода. Уйти от этой логики невозможно. Невозможно написать код без предварительного чтения окружающего кода. Код, который вы собираетесь написать сегодня, будет легко или тяжело читаться в зависимости от того, насколько легко или тяжело читается окружающий код. Если вы хотите быстро справиться со своей задачей, если вы хотите, чтобы ваш код было легко писать — позаботьтесь о том, чтобы он легко читался.

You might ask: How much is code really read? Doesn't most of the effort go into writing it?

Have you ever played back an edit session? In the 80s and 90s we had editors like Emacs that kept track of every keystroke. You could work for an hour and then play back your whole edit session like a high-speed movie. When I did this, the results were fascinating.

The vast majority of the playback was scrolling and navigating to other modules!

- Bob enters the module.
- He scrolls down to the function needing change.
- He pauses, considering his options.
- Oh, he's scrolling up to the top of the module to check the initialization of a variable.
- Now he scrolls back down and begins to type.
- Ooops, he's erasing what he typed!
- He types it again.
- He erases it again!
- He types half of something else but then erases that!
- He scrolls down to another function that calls the function he's changing to see how it is called.
- He scrolls back up and types the same code he just erased.
- He pauses.
- He erases that code again!
- He pops up another window and looks at a subclass. Is that function overridden?
<...>
You get the drift. Indeed, the ratio of time spent reading vs. writing is well over 10:1. We are constantly reading old code as part of the effort to write new code.

Because this ratio is so high, we want the reading of code to be easy, even if it makes the writing harder. Of course there's no way to write code without reading it, so making it easy to read actually makes it easier to write.

There is no escape from this logic. You cannot write code if you cannot read the surrounding code. The code you are trying to write today will be hard or easy to write depending on how hard or easy the surrounding code is to read. So if you want to go fast, if you want to get done quickly, if you want your code to be easy to write, make it easy to read."
—"Clean Code: A Handbook of Agile Software Craftsmanship" by Robert C. Martin, перевод: Е.Матвеев, ООО Издательство "Питер"

#SoftwareDesign
👍15
Совет: при модернизации legacy приложений, если ценность этой модернизации сомнительна или низка, то такое приложение лучше отдать на поддержку на аутсорс, а самим сосредоточиться на более маржинальных для бизнеса задачах. https://youtu.be/ary7OqYGpI0?t=1789
👍4👎2👏1
Мнение: Legacy приложением можно назвать такое, для которого выполняется хотя бы одно из двух условий:

1) Характеристики не достаточны с точки зрения пользователей (ёмкость, время отклика);

2) Скорость внесения изменений в систему не удовлетворяет нашим потребностям.

https://youtu.be/ary7OqYGpI0?t=2413
👍5
Зачем модернизировать legacy приложения? Не ради современных фреймворков и технологий. Смотреть нужно со стороны клиента и создания ценности для него. Обновление технологий лишь инструмент, но не самоцель. Возможно, обновление технологий и не потребуется при модернизации.
👍6
В прошлом году я записал два выпуска подкаста про современную разработку на Битрикс.

А недавно в эту же тему подняли на YouTube канале Хекслета, смотрите свежий батл между CTO с большой экспертизой по Битрикс (Иван Поддубный) и core разработчиком Yii (Александр Макаров): http://amp.gs/jnVXm

Послушайте также выпуски Пятиминутки PHP: http://amp.gs/jnVXZ
http://amp.gs/jnVXp
🔥7💩4🤬1
Новый язык программирования от Google: Carbon

http://amp.gs/jn9iq

Совместим с C++, но выглядит современнее и безопасно работает с памятью.

JavaScript → TypeScript
Java → Kotlin
C++ → Carbon
🤔14👍1
У тимлидов бывает свой «пакет с пакетами» — это Excel с Excel’ями
#подслушановмаршрутке
👎9😁4👍1
Образец желтых заголовков: "Масштабирование Laravel до 30 000 запросов в минуту".

Wait... В МИНУТУ?

Обычно запросами меряются в секунду и если перевести в привычную систему измерения, выходит 500 req/sec. Мощно отмасшабировали!

https://subscribe.mateusguimaraes.com/posts/scaling-laravel-to-30-000-requests-sec-and-over-100m-jobs
💩15😁7
😁16🔥7💩2👎1🤩1🤮1
😁24💩3👍2👎1🤮1
😁17💩2👍1🤔1🤮1