Использование memcached и Redis в высоконагруженных проектах. http://highload.guide/blog/using-memcached-and-redis.html , ссылка на видео доклада https://vimeo.com/117154462
highload.guide
Использование memcached и Redis в высоконагруженных проектах
Я немного расскажу вам про кэширование. Кэширование, в общем-то, не сильно интересно, берешь и кэшируешь, поэтому я еще расскажу про memcached, довольно интимные подробности.
Как выруливать с legacy code, когда проект нужно было на вчера https://habr.com/post/431562
Хабр
Как выруливать с legacy code, когда проект нужно было на вчера
Привет. Меня зовут Иван Мельничук, я Head of Development Department в украинской IT-компании. В публикации хочу поделиться личными профессиональными подходами от...
Оптимизация БД https://habr.com/company/badoo/blog/433730/
Хабр
Оптимизация реляционных баз данных без даунтайма на примере самой нагруженной БД в Badoo
В условиях highload сложность оптимизации реляционных баз данных возрастает на порядок, так как покупка ещё более мощного железа обходится дорого а также уже н...
Небольшая книга про Redis на русском https://github.com/akandratovich/the-little-redis-book/blob/master/ru/redis-ru.pdf
GitHub
the-little-redis-book/ru/redis-ru.pdf at master · akandratovich/the-little-redis-book
Contribute to akandratovich/the-little-redis-book development by creating an account on GitHub.
#php
Огромный список актуальных библиотек, фреймворков и прочих дополнений для PHP. Пригодится как начинающим разработчикам, так и опытным профессионалам https://github.com/ziadoz/awesome-php
Огромный список актуальных библиотек, фреймворков и прочих дополнений для PHP. Пригодится как начинающим разработчикам, так и опытным профессионалам https://github.com/ziadoz/awesome-php
GitHub
GitHub - ziadoz/awesome-php: A curated list of amazingly awesome PHP libraries, resources and shiny things.
A curated list of amazingly awesome PHP libraries, resources and shiny things. - ziadoz/awesome-php
#советы
Советы начинающим разработчикам
1. Пишите код так, чтобы для его понимания требовалось минимум комментариев. Вместо того, чтобы тратить время на запутанные объяснения, вложите его в грамотное именование методов и переменных. И разбивайте программу на небольшие логические блоки. (Если вы прочитали этот совет как «не надо писать комментарии к коду» — перечитайте).
2. Используйте только те библиотеки и плагины, устройство которых понимаете. Для этого в том числе нужно читать их код — так вы быстрее разберётесь и заодно прокачаете программерские навыки.
3. Используйте простые инструменты. Вокруг наплодилось много систем — фреймворков, утилит, приложений — и большинство из них только отнимает время. Перед тем, как применить что-то, каждый раз оценивайте необходимость такого усложнения. И постепенно окружайте себя действительно нужными вам и любимыми инструментами.
4. Работающий код — уже хороший код. Всё, что вы пишете, конвертируется в опыт. Не пытайтесь сразу сделать идеально — через полгода вы посмотрите на свой код и вам в любом случае покажется, что его писал какой-то сумасшедший. Вместо того, чтобы страдать перфекционизмом (он мешает работе), просто больше практикуйтесь.
5. Не бойтесь удалять код. Даже когда вы понимаете, что зашли в тупик, уже решив задачу на 80%. На переписывание кода у вас уйдет не так много времени — гораздо больше вы потратите на отладку и поддержание некачественной запутанной системы. И стоит как можно раньше научиться пользоваться системой контроля версий.
6. Поймите, как устроены разные структуры данных. Разберитесь, в каких случаях каждое решение будет наиболее эффективным — это поможет вам лучше хранить и организовывать информацию.
7. Соглашайтесь на выполнение сложных задач. Даже если думаете, что ваших навыков не хватает. Если на работе появляется какая-то задача, за которую никто не хочет браться — хватайтесь за неё. Это будет только двигать вас вперёд.
По материалам блога Clinton Dreisbach (https://dreisbach.us/articles/new-developer-advice/).
Советы начинающим разработчикам
1. Пишите код так, чтобы для его понимания требовалось минимум комментариев. Вместо того, чтобы тратить время на запутанные объяснения, вложите его в грамотное именование методов и переменных. И разбивайте программу на небольшие логические блоки. (Если вы прочитали этот совет как «не надо писать комментарии к коду» — перечитайте).
2. Используйте только те библиотеки и плагины, устройство которых понимаете. Для этого в том числе нужно читать их код — так вы быстрее разберётесь и заодно прокачаете программерские навыки.
3. Используйте простые инструменты. Вокруг наплодилось много систем — фреймворков, утилит, приложений — и большинство из них только отнимает время. Перед тем, как применить что-то, каждый раз оценивайте необходимость такого усложнения. И постепенно окружайте себя действительно нужными вам и любимыми инструментами.
4. Работающий код — уже хороший код. Всё, что вы пишете, конвертируется в опыт. Не пытайтесь сразу сделать идеально — через полгода вы посмотрите на свой код и вам в любом случае покажется, что его писал какой-то сумасшедший. Вместо того, чтобы страдать перфекционизмом (он мешает работе), просто больше практикуйтесь.
5. Не бойтесь удалять код. Даже когда вы понимаете, что зашли в тупик, уже решив задачу на 80%. На переписывание кода у вас уйдет не так много времени — гораздо больше вы потратите на отладку и поддержание некачественной запутанной системы. И стоит как можно раньше научиться пользоваться системой контроля версий.
6. Поймите, как устроены разные структуры данных. Разберитесь, в каких случаях каждое решение будет наиболее эффективным — это поможет вам лучше хранить и организовывать информацию.
7. Соглашайтесь на выполнение сложных задач. Даже если думаете, что ваших навыков не хватает. Если на работе появляется какая-то задача, за которую никто не хочет браться — хватайтесь за неё. Это будет только двигать вас вперёд.
По материалам блога Clinton Dreisbach (https://dreisbach.us/articles/new-developer-advice/).
dreisbach.us
Clinton Dreisbach - My advice to new developers
Плей-лист для программирования. Очень крутая подборка, лично опробовал https://music.yandex.ru/users/makcim.govorov/playlists/1001
#музыка
#музыка
Рубрика "Знали ли вы об этом?"
Тернарный оператор в PHP, казалось бы нет ничего сложного. Но незнание его особенности может привести к серезным багам. Об этом и пойдет речь в нашей статье.
После ее прочтения ответьте, пожалуйста, на простой вопрос: "Знали ли вы об этом?"
https://telegra.ph/Ne-ozhidaemoe-povedenie-ternarnogo-operatora-v-php-Bag-li-ehto-02-06
#статьи, #знали_ли_вы_об_этом
Тернарный оператор в PHP, казалось бы нет ничего сложного. Но незнание его особенности может привести к серезным багам. Об этом и пойдет речь в нашей статье.
После ее прочтения ответьте, пожалуйста, на простой вопрос: "Знали ли вы об этом?"
https://telegra.ph/Ne-ozhidaemoe-povedenie-ternarnogo-operatora-v-php-Bag-li-ehto-02-06
#статьи, #знали_ли_вы_об_этом
Telegraph
Не очевидное поведение тернарного оператора в PHP
Посмотрите на данный пример кода и подумайте, что он должен вывести. $a = 2; echo ( $a == 1 ? 'one' : $a == 2 ? 'two' : $a == 3 ? 'three' : $a == 4 ? 'four' : 'other' ); Конечно же ожидаемый вывод - two, но на самом деле выведется four. Давайте разберемся…
Что нужно знать и уметь, чтобы работать PHP-разработчиком https://livetyping.com/ru/blog/chto-nuzhno-znat-i-umet-chtoby-rabotat-php-razrabotchikom
#начинающим
#начинающим
Просто о сложном - Domain Driven Design
#php | #ddd | #video | #продвинутым
В рамках этого доклада вы выясните:
1️⃣ что такое DDD
2️⃣ какие задачи он призван решить
3️⃣ факторы, которые приводят к использованию этого подхода
На примере проектирования реальной системы шаг за шагом разбиретесь в концепциях и элементах DDD, получив на выходе комплексные знания для того, чтобы начать использование DDD в вашем проекте.
https://youtu.be/7HXIrEsmlzM
#php | #ddd | #video | #продвинутым
В рамках этого доклада вы выясните:
1️⃣ что такое DDD
2️⃣ какие задачи он призван решить
3️⃣ факторы, которые приводят к использованию этого подхода
На примере проектирования реальной системы шаг за шагом разбиретесь в концепциях и элементах DDD, получив на выходе комплексные знания для того, чтобы начать использование DDD в вашем проекте.
https://youtu.be/7HXIrEsmlzM
YouTube
Просто о сложном - Domain Driven Design [ru] / Дмитрий Науменко
Конференция PHP fwdays'17 прошла 11 июня 2017 года в Киеве, Украина.
Таймкоды:
01:29 Domain - Счёт на оплату
02:13 Domain experts
04:35 Начало проэкта
10:28 Onion architecture
18:42 Анемия модели
21:59 Repositury
25:10 Domain Services Interfaces
26:15 Infrastucture…
Таймкоды:
01:29 Domain - Счёт на оплату
02:13 Domain experts
04:35 Начало проэкта
10:28 Onion architecture
18:42 Анемия модели
21:59 Repositury
25:10 Domain Services Interfaces
26:15 Infrastucture…
Стадии развития программиста
Пост из группы https://javarush.ru/groups/info.javarush.ru
Разработчик инди-игр Эрик Райдман (Erik Rydeman) определил список типичных стадий развития программиста:
1️⃣ Копипастер/совсем зеленый новичок - старается соединить вместе примеры кода, которые он нашёл онлайн. Имеет самые смутные представления о том, что и как работает.
2️⃣ Независимый новичок - узревший матрицу! На самом деле, он узрел её краем одного глаза, но пока не в курсе и пребывает в искреннем заблуждении, думая, что познал силу и теперь дело за малым (хе-хе). Может писать простой и запутанный код, не подглядывая в примеры. Очень радуется, когда результаты его труда работают, именно так, как предполагалось.
3️⃣ Присматривающийся к шаблонам проектирования - он уже познал синтакис своего первого языка, и теперь присматривается к лучшим практикам. Он начинает изучать шаблоны проектирования, и всесилие, которое снизошло на него на предыдущем этапе, растворяется, как осенний туман. Перед нами снова безнадежно зеленый и вечно сомневающийся новичок...
4️⃣ Энтузиаст шаблонов проектирования - его сознание живет идеей “идеального кода”. Энтузиаст старается структурировать собственный код так, чтобы он был близок к недостижимому идеалу и максимально вписывался в существующие шаблоны. Теперь с написанным им кодом работать куда приятнее.
5️⃣ Архитектурный СверхФанатик - это случается с каждым. Но некоторые программисты углубляются в лучшие практики так рьяно, что готовы отстаивать их с рвением, которому позавидуют даже религиозные фанатики со стажем. И, как и последние, они не успокаиваются, пока все вокруг не примут их точку зрения или покинут их поле зрения. Порой на этом этапе снижается продуктивность, а всё потому, что принимаются неверные решения (слишком много доверия теории, не подтвержденного практикой) .
6️⃣ Опытный архитектор - накопленный опыт начинает давать плоды. «Архитектор» на уровне чутья знает, что происходит на самом деле, и что с этим всем делать. На этом этапе программист начинает отходить от строгих догм, а главной его фразой становится “it depends” («всяко бывает»). Сложные решения — более не его фетиш.
7️⃣ Аскет-минималист - вопрос: какой способ структурировать код самый лучший? Ответ аскета: простейший из всех возможных. Инженерные теоретические изыски теперь интересуют его много меньше практического результата, а найти решение, которое окажется хорошим, и сделать это с первой попытки — вполне реально: помогает опыт аскета.
А на каком этапе находитесь вы?
Пост из группы https://javarush.ru/groups/info.javarush.ru
Разработчик инди-игр Эрик Райдман (Erik Rydeman) определил список типичных стадий развития программиста:
1️⃣ Копипастер/совсем зеленый новичок - старается соединить вместе примеры кода, которые он нашёл онлайн. Имеет самые смутные представления о том, что и как работает.
2️⃣ Независимый новичок - узревший матрицу! На самом деле, он узрел её краем одного глаза, но пока не в курсе и пребывает в искреннем заблуждении, думая, что познал силу и теперь дело за малым (хе-хе). Может писать простой и запутанный код, не подглядывая в примеры. Очень радуется, когда результаты его труда работают, именно так, как предполагалось.
3️⃣ Присматривающийся к шаблонам проектирования - он уже познал синтакис своего первого языка, и теперь присматривается к лучшим практикам. Он начинает изучать шаблоны проектирования, и всесилие, которое снизошло на него на предыдущем этапе, растворяется, как осенний туман. Перед нами снова безнадежно зеленый и вечно сомневающийся новичок...
4️⃣ Энтузиаст шаблонов проектирования - его сознание живет идеей “идеального кода”. Энтузиаст старается структурировать собственный код так, чтобы он был близок к недостижимому идеалу и максимально вписывался в существующие шаблоны. Теперь с написанным им кодом работать куда приятнее.
5️⃣ Архитектурный СверхФанатик - это случается с каждым. Но некоторые программисты углубляются в лучшие практики так рьяно, что готовы отстаивать их с рвением, которому позавидуют даже религиозные фанатики со стажем. И, как и последние, они не успокаиваются, пока все вокруг не примут их точку зрения или покинут их поле зрения. Порой на этом этапе снижается продуктивность, а всё потому, что принимаются неверные решения (слишком много доверия теории, не подтвержденного практикой) .
6️⃣ Опытный архитектор - накопленный опыт начинает давать плоды. «Архитектор» на уровне чутья знает, что происходит на самом деле, и что с этим всем делать. На этом этапе программист начинает отходить от строгих догм, а главной его фразой становится “it depends” («всяко бывает»). Сложные решения — более не его фетиш.
7️⃣ Аскет-минималист - вопрос: какой способ структурировать код самый лучший? Ответ аскета: простейший из всех возможных. Инженерные теоретические изыски теперь интересуют его много меньше практического результата, а найти решение, которое окажется хорошим, и сделать это с первой попытки — вполне реально: помогает опыт аскета.
А на каком этапе находитесь вы?
Горячие клавиши в PhpStorm
#php | #ide | #phpstorm
PhpStorm - это не заменимый помощник любого уважающего себя php-разработчика. Знание горячих клавиш в данной IDE в разы ускоряет процесс разработки. Поэтому иметь под рукой шпаргалку просто необходимо (особенно в первое время). Переходим по ссылке и пользуемся на здоровье!
https://github.com/LoginovIlya/PhpStorm-hotkeys-ru
#php | #ide | #phpstorm
PhpStorm - это не заменимый помощник любого уважающего себя php-разработчика. Знание горячих клавиш в данной IDE в разы ускоряет процесс разработки. Поэтому иметь под рукой шпаргалку просто необходимо (особенно в первое время). Переходим по ссылке и пользуемся на здоровье!
https://github.com/LoginovIlya/PhpStorm-hotkeys-ru
GitHub
GitHub - LoginovIlia/PhpStorm-hotkeys-ru: PhpStorm/WebStorm Горячие клавиши
PhpStorm/WebStorm Горячие клавиши. Contribute to LoginovIlia/PhpStorm-hotkeys-ru development by creating an account on GitHub.