#architecture #mvc
PHP сегодня — это не просто формочки да работа с базой данных. Это архитектура, паттерны и множество лучших практик создания приложения на данном языке. В этих двух статьях раскрываются самые популярные принципы создания приложений на PHP:
https://bit.ly/2PxYrfw
https://bit.ly/2QUH59j
  
  PHP сегодня — это не просто формочки да работа с базой данных. Это архитектура, паттерны и множество лучших практик создания приложения на данном языке. В этих двух статьях раскрываются самые популярные принципы создания приложений на PHP:
https://bit.ly/2PxYrfw
https://bit.ly/2QUH59j
Hacker Noon
  
  PHP Software Architecture Part 1: MVC
  In this series, we will be talking about PHP software architecture. Some may call it PHP application architecture or even PHP web…
  #advanced 
Кто любит архитектуру приложений, как мы, могут посмотреть следующий большой плейлист различных видео по самым разным и полезным темам ООП в PHP.
https://github.com/phptodayorg/php-must-watch#architecture-and-design
  
  Кто любит архитектуру приложений, как мы, могут посмотреть следующий большой плейлист различных видео по самым разным и полезным темам ООП в PHP.
https://github.com/phptodayorg/php-must-watch#architecture-and-design
GitHub
  
  GitHub - phptodayorg/php-must-watch: list of interesting conference talks and videos on PHP -
  list of interesting conference talks and videos on PHP -  - GitHub - phptodayorg/php-must-watch: list of interesting conference talks and videos on PHP -
  #advanced #architecture
Кроме устоявшегося уже SOLID, есть еще группа шаблонов для решения проблем, связанных с распределением ответственности между объектами, собранных под общим названием GRASP. Одни из самых интересных - это coupling и cohesion, которые определяют связи между функциональными модулями одного приложения. Подробнее по ссылке:
https://proglib.io/w/04aa1f02
  
  Кроме устоявшегося уже SOLID, есть еще группа шаблонов для решения проблем, связанных с распределением ответственности между объектами, собранных под общим названием GRASP. Одни из самых интересных - это coupling и cohesion, которые определяют связи между функциональными модулями одного приложения. Подробнее по ссылке:
https://proglib.io/w/04aa1f02
Medium
  
  Low Coupling и High Cohesion
  Качественный дизайн обладает слабой связанностью (low coupling) и сильной связностью (high cohesion). Это значит, что программный…
  #advanced #architecture
Домены, поддомены, ограниченные контексты и другие понятия из мира DDD в большой обзорной статье.
https://medium.com/nick-tune-tech-strategy-blog/domains-subdomain-problem-solution-space-in-ddd-clearly-defined-e0b49c7b586c
  
  Домены, поддомены, ограниченные контексты и другие понятия из мира DDD в большой обзорной статье.
https://medium.com/nick-tune-tech-strategy-blog/domains-subdomain-problem-solution-space-in-ddd-clearly-defined-e0b49c7b586c
Medium
  
  Domain, Subdomain, Bounded Context, Problem/Solution Space in DDD: Clearly Defined
  Domain-Driven Design is an approach to designing systems, usually software, that emphasises creating a common language between domain…
  #architecture
Когда возникает вопрос о том, чтобы наша бизнес-сущность имела различные состояния, мы создаем у сущности поле
А расскажите про свой опыт управления сущностями с разными статусами в комментариях.
  
  Когда возникает вопрос о том, чтобы наша бизнес-сущность имела различные состояния, мы создаем у сущности поле
state/status, которое помогает ориентироваться в том, как управлять сущностью и какие операции допустимы. Такой подход кажется не совсем удобным, когда бизнес-операции имеют важное значение в разное время жизни сущности. Во-первых, дублирование каких-то действий, если вы забыли проверить текущий статус, может сломать состояние модели (что если заказ будет оплачен 2 раза?). Во-вторых, у разных состояний разный набор бизнес-операций, а иногда – разный набор данных: где-то больше, где-то меньше. Было бы удобнее не держать все в одном месте, а делать на каждый статус отдельную таблицу. К сожалению, если вы не используете совместно с таким подходом CQRS, вам будет сложно работать с такой структурой при выборках данных. Есть и другой подход – отдельная таблица со статусами. Подробнее можно почитать по ссылке: https://dba.stackexchange.com/questions/158949/should-i-create-multiple-tables-for-different-entity-states-statuses-or-stages. А расскажите про свой опыт управления сущностями с разными статусами в комментариях.
Database Administrators Stack Exchange
  
  Should I create multiple tables for different entity states, statuses or stages?
  I have a tasks table in my database and, in the business domain of interest, tasks can have multiple states: “open”, “begun”, “in review” and “completed”.
Despite having “open” and “begun” in the s...
  Despite having “open” and “begun” in the s...
#advanced #architecture 
Большая статья, в которой рассматриваются примеры технологий и подходов при построении высоконагруженных приложений:
1. Балансировщики нагрузки;
2. SQL или NoSQL базы данных;
3. Шардинг;
4. Репликация;
5. Кэширование;
6. CDN;
7. Long-polling vs Websockets vs SSE.
https://proglib.io/w/4bc624df
  
  Большая статья, в которой рассматриваются примеры технологий и подходов при построении высоконагруженных приложений:
1. Балансировщики нагрузки;
2. SQL или NoSQL базы данных;
3. Шардинг;
4. Репликация;
5. Кэширование;
6. CDN;
7. Long-polling vs Websockets vs SSE.
https://proglib.io/w/4bc624df
Medium
  
  How to design a system to scale to your first 100 million users
  Think Big, Do Small, Learn Fast
  #advanced #architecture 
Хорошая статья с многочисленными выдержками из книг и статей на тему управления логикой приложения и проектированию сервисного слоя, Use Case, CQRS, Event Sourcing и др.
https://emacsway.github.io/ru/service-layer/
  
  Хорошая статья с многочисленными выдержками из книг и статей на тему управления логикой приложения и проектированию сервисного слоя, Use Case, CQRS, Event Sourcing и др.
https://emacsway.github.io/ru/service-layer/
emacsway.github.io
  
  Проектирование Сервисного Слоя и Логики Приложения — @emacsway's blog
  Эта статья посвящена вопросам управления Логикой Приложения и проектированию Сервисного Слоя (Service Layer), Use Case, CQRS, Event Sourcing, MVC и др.
  #advanced #architecture
"DRY – это про знания. Дублирование кода – это не проблема", – так эту статью начинает Матьяс Верраес. Статья рассказывает о том, о чем на самом деле говорит принцип "Don't repeat yourself".
https://verraes.net/2014/08/dry-is-about-knowledge/
  
  "DRY – это про знания. Дублирование кода – это не проблема", – так эту статью начинает Матьяс Верраес. Статья рассказывает о том, о чем на самом деле говорит принцип "Don't repeat yourself".
https://verraes.net/2014/08/dry-is-about-knowledge/
Mathias Verraes' Blog
  
  DRY is about Knowledge
  Code duplication is not the issue.
  #advanced #architecture 
Frank De Jonge, автор Flysystem, рассказывает о том, какие типы событий бывают в event-driven системах.
https://blog.frankdejonge.nl/the-different-types-of-events-in-event-driven-systems/
  
  Frank De Jonge, автор Flysystem, рассказывает о том, какие типы событий бывают в event-driven системах.
https://blog.frankdejonge.nl/the-different-types-of-events-in-event-driven-systems/
Frank on Software
  
  The different types of events in event-driven systems
  Event-driven systems come in all sorts of shapes and sizes. The obvious commonality is; they all use events to communicate information. These events come in many shapes and sizes, and determining what goes into an event has an immense impact on the design…
👍1
  