• Stars
    star
    599
  • Rank 74,746 (Top 2 %)
  • Language MDX
  • License
    MIT License
  • Created over 5 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Book about the SOLID principles and object-oriented software design.

Солидбук

Read the description in English. The translation is on the way. Hold tight and stay tuned!

Книга о принципах SOLID и объектно-ориентированном дизайне программ.

О чём это и для кого

Программировать — сложно.

Хороший код адекватно отражает систему, которую описывает, он устойчив к изменениям в этой системе. Плохой код запутанный, хрупкий и непонятный — он замедляет разработку.

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

В этой книге мы хотим рассказать и показать на примерах, как принципы объектно-ориентированного программирования могут помочь спроектировать устойчивую систему.

О каких принципах пойдёт речь?

Мы рассмотрим 5 принципов SOLID, а именно:

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

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

Об авторах

Эту книжку написали:

...И контрибьюторы проекта ❤️

Лицензии

Текст и иллюстрации книги распространяются под лицензией CC BY-NC-SA 4.0. Вы можете дополнять, менять и использовать их в проектах на некоммерческой основе при сохранении лицензии и указании авторов.

Исходный код проекта распространяется под лицензией MIT.

More Repositories

1

frontend-clean-architecture

React + TypeScript app built using the clean architecture principles in a more functional way.
TypeScript
2,276
star
2

refactor-like-a-superhero

How to refactor code efficiently and without pain.
945
star
3

tools

Список полезных сервисов для разработчиков.
131
star
4

front-not-pain

How to work with ease and joy. Uplifting guide for frontend developers.
HTML
118
star
5

scroller

Fast, light-weight (4KB gzip), and dependency-free content scroller.
JavaScript
117
star
6

explicit-design

Source code for the “Explicit Design” post series.
TypeScript
91
star
7

www

Source code for my blog.
Svelte
81
star
8

treees

Trees images generator based on L-Systems made with TypeScript using OOP principles.
TypeScript
52
star
9

ttt-tdd

Book about test-driven development with an example of making “Tic-Tac-Toe” by TDD.
HTML
31
star
10

refactor-like-a-superhero-talk

Source code and examples for “Refactor Like a Superhero” talk.
JavaScript
29
star
11

text-generator

A naive text generator built in JavaScript using Markov chains.
JavaScript
26
star
12

testing-workshop

Source code samples for the workshop about testing React applications.
JavaScript
23
star
13

you-really-dont-need-redux-now

Redux vs Context API + Hooks comparison article.
JavaScript
20
star
14

react-scroller

React component wrapper for Scroller.
JavaScript
20
star
15

di-ts-in-practice

A sample app for a post about dependency injection with TypeScript.
TypeScript
18
star
16

rule-based-data-validation

Declarative data validation made with rule-based approach and functional programming.
TypeScript
17
star
17

fsm-example

Finite state machine example written in vanilla Javascript.
JavaScript
15
star
18

tmstmp

Converts timestamps to dates and backwards.
TypeScript
13
star
19

vue-scroller

Vue component wrapper for Scroller.
Vue
7
star
20

web-worker-example

Using Web Workers to Boost Performance.
CSS
7
star
21

binary-full-adder-in-the-game-of-life

Binary adder implementation in the Game of Life written in JavaScript using canvas.
JavaScript
6
star
22

bespoyasov

Hello · Hallå · Привет!
5
star
23

utils

Javascript helper-functions
JavaScript
5
star
24

kursovik-redux-electron

App showing $/₽ exchange
JavaScript
3
star
25

traktor-html-css-workshop

Source code samples for the HTML & CSS workshop at Traktor School.
HTML
2
star
26

clickme

“Click me!“ implementation made with RxJS.
TypeScript
2
star
27

react-piano-next

A virtual piano keyboard built with React and deployed with Vercel (former Next).
TypeScript
2
star
28

next-app-deployment

The example Next app, that we're going to deploy on Vercel, Heroku and a custom static server.
TypeScript
2
star
29

shitty-advices

HTML
1
star
30

kursovik-rn-expo

Rebuilt the Kursovik app using React Native and Expo because why not.
JavaScript
1
star
31

loose-equals

JavaScript explicit non-strict equality comparator.
JavaScript
1
star
32

wesbos-advanced-react-rerecorded

Let's relearn this stuff.
JavaScript
1
star
33

wesbos-node-course

Node course
JavaScript
1
star
34

bookmark

Crossbrowser aside anchor-navigation
JavaScript
1
star
35

unv-proj

University graduation project
Python
1
star
36

teaching-as-a-negotiation-skill

Слайды к докладу
HTML
1
star
37

figma-tags-finder

A missing tags manager for Figma
TypeScript
1
star
38

morse

Text to Morse code translator.
JavaScript
1
star