Pull to refresh
58
0
Михаил Кузьмин @mkuzmin

User

Send message

Да, есть планы на сайт, pdf, epub и т.п. Спасибо.

1) emacs + sider или idea + cursive, я пользуюсь первым. Кто-то пишет в ms vs code, там есть какие-то плагины.
2) На любителя, кто-то просто git использует в терминале. Для emacs есть magit.
3) Автокомлит в редакторе делается плагинами, тем же cider. Есть clj-refactor, но он не работает с новым cider =(
4) Навигация зависит от редактора. Для emacs есть projectile.
5) Есть java interop, т.е. из repl можно дергать java код.
6) Например, запаковать в докер.
7) да, есть бенчмарки, которые умеют прогревать JVM. В книге есть пример.
8) вот пример теста


Можно помотреть мой emacs.d.


Взять любой стартинггайд по

У меня нет цели писать стандартный гайд, иначе я бы никогда не закончил книгу.
Для этого есть глава о материалах для самостоятельно чтения.


  1. https://clojurecourse.by/ — отличные русскоязычные курсы
  2. https://www.braveclojure.com/clojure-for-the-brave-and-true/

Если просто написать web приложение, вот чтобы сразу ехать, то можно посмотреть в сторону luminus. Но как спроектировать архитектуру там не расскажут.

спасибо, поправил

В книге есть параграф про окружение.


Например, там описан отдельный repl, не встраиваемый в редактор, и плагин для расстановки скобок и выравнивания кода.


По поводу emacs — без нормальной клавиатуры, вроде kinesis, с ним очень сложно.


Надеюсь, это поможет.

Виноват тот, кто реализовал DoubleStack.


избегайте глобальных абстракций (List, Hash, etc)

Несколько странный вывод =)
Хорошо бы пользоваться соответствующими интерфейсами, а для их выбора поможет ISP.

Круто, что хоть кто-то открыл эту книжку =)
Еще советую посмотреть видео. Их можно найти.


SRP
DBA тут при том, что есть шлюз к базе, и актором, запрашивающим изменения будет DBA.
То, что вы привели — действительно цитата из книжки, я же привел свою трактовку.


OCP
Определение из статьи — цитата из книжки. Трактовка взята из соответствующего видео с cleancoders.com. Артефакт — это файл, содержащий класс в текстовой форме, dll, и т.п.


LSP
В основном, эта часть опять взята с cleancoders.com

Тут речь про то, что модели не обязаны реализовывать отношения объектов реального мира.


Т.е. в реальном мире список окружностей является подтипом списка фигур, но в программной модели с изменяемыми списками это не так.

В том то и дело, что формулировки принципов выглядят довольно странно.
И осенью вышла книга CleanArchitecture, которая исправляет эти недостатки.


Цель статьи привлечь внимание и посоветовать ознакомиться с первоисточниками.

Вы читали первоисточники, которые указаны в статье?

конечно, программа подстраивается под отношения людей, а не наоборот

Про случай СУБД, советую посмотреть https://github.com/darkleaf/building-application

посмотри еще вот это: https://github.com/darkleaf/building-application


там пример на clojure, но все доступно объясняется

Можно провести такую аналогию. Заказчик говорит: Нужно отправить письмо, если (тут набор бизнес требований). Т.е. он не говорит, я хочу отправить письмо через Mailchimp. Он закрывается абстракцией и откладывает решение о реализации.


Про проводу протекания абстракций. Текут абстракции, вроде TCP, которые обязуются обеспечить надежность поверх ненадежных технологий. Если выдернуть провод, TCP естественно не доставит пакет.


Все зависит от архитектора и его компетенций. Само-собой можно такого напроектировать.


Просмотри первоисточники, там подробно разобраны твои вопросы.

Чтобы вставить заглушку — нужно объявить интерфейс(абстракцию).


Давай пример попроще.
Допустим, нужно отправлять уведомления.
Мы объявляем интерфейс вроде IMailSender с одним методом void Send(address, title, content).
Далее описываем бизнес-логку. В тесах используем mock/stub/fake object с интерфейсом IMailSender.


Нам важно примерно знать что будет, а не точно.


Найди книжку Clean Architecture, там все доступно объясняется.

История следующая. Обычно все говорят, зачем тебе абстракции, если ты и так знаешь что будешь использовать условный Postgres. У тебя вопрос — полная противоположность.


Для начала работы как раз нужно использовать заглушку, но понимать, что примерно будет использоваться потом. И спроектировать адекватные абстракции.


Если ты ожидаешь, что будет использоваться реляционная база, а потом окажется, что можно использовать только key-value, то абстракции нужно будет менять и переписывать проект.

Information

Rating
Does not participate
Location
Ульяновск, Ульяновская обл., Россия
Registered
Activity