Pull to refresh
45
0
Алексей @jdev

Эксперт по эффективной разработке, Kotlin техлид

Send message

И вот тут я процитирую один комментарий с сайта Роберта Мартина:

А почему вы не цитируете ответ Мартина?:)

You begin by talking about OOD and by the end of the first paragraph
have made the most critical of errors: equating OOD with OOP. OOA/D is
about THINKING. OOP is about DOING. The two are separate.

* It took me over half a decade to realize that this wasn't true. OOP and OOD are inseparable. OOA is undefined. - UB

Но вообще я с вами согласен ООП != ООД.

К сожалению сама картинка здоровая получилась, а хабр, кажется, не может нормально увеличивать в превью. Могу предложить открыть по прямой ссылке - у меня в ФФ она нормально масштабируется

Ну и с альтернативами, по моему опыту, новичёк скорее просто не сможет решить задачу и придёт с вопросом.

А в JPA новичёк вполне может с полной уверенностью в себе решить задачу, но попутно разложить гору грабель, которые в тесте будут тихонько лежать, а в проде начнут больно бить, если ревью проскочат.

Ну, ваш пост не портит даже то, что вы декларируете ненависть к хибернейту в самом начале.

Спасибо:)

я склонен игнорировать предложения работы, где мне либо предлагают нелюбимые технологии

Да, согласен с вами, но мне кажется, что разработчиков, которые могут и согласны работать с JPA существенно больше тех, кто могут и согласны работать с Spring Data JDBC/jooq и т.п.

Другое дело (опять же имхо), что благодаря простоте их устройства, знание этих технологий не обязательно при найме - даёшь человеку день прочитать мануал и он уже способен их использовать на вменяемом уровне, месяц чуть пристальнее смотришь на ревью и всё, эксперт готов.

мастер йода деткед?‍♂️

Вам спасибо за комментарий - я узнать рад, что вы нашли пост полезным:)

Спасибо за замечание

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

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

Но тут действительно есть над чем подумать - кажется надо как-то разделить поведение, которое наблюдаемо через взаимодействия с ресурсами внешних систем (которые фиксированы и не могут изменяться) и поведение, которое наблюдаемо через изменение результатов эффектов чтения внутренних ресурсов (и тут не важно как этот ресурс реализован).

В любом случае, думаю вы правы, в том, что надо разделить краткую и полную нотацию. У них разные контексты и цели.

Бесстыжий плаг

Взгляд все же предполагает некоторое исследование, доказательства и т.п

я как минимум ожидаю, что будут приведены явные и несомненные плюсы ORM


Тогда вам, возможно, больше понравится мой пост против JPA, где я и признаю бесспорные плюсы JPA, и, на мой взгляд, аргументированно критикую её подход.

Есть ещё черновик поста с критикой подхода к моделированию данных связным графом объектом.

В качестве альтернативы я предлагаю использовать Агрегаты и Spring Data JDBC.

К текущему моменту, я применил Spring Data R2/JDBC в 4 коммерческих проектах, есть определённы сложности (больше всего не хватает Specification), но в целом доволен и намерен и дальше использовать их в качестве технологии работы с БД по умолчанию.

Вам спасибо за комментарий, рад что статья оказалась полезной для вас:)

Похоже я эту проблему решил вот таким скриптом: https://github.com/aleksey-zhidkov/smart-switcher :) Но в моей схеме нельзя сейчас повесить кастомные шоткаты для определённого воркспейса.

У меня каждый воркспейс — это отдельный "проект". А на стандартный набор окон (браузер, терминал, саблайм, файловый менеджер) навешены шорткаты, которые их разворачивают/сворачивают:) Плюс есть шоткат который работает с "прочими" окнами которые, как правило это как раз являются тулами для работы над "проектом" данного воркспейса (IDE, скайп, почта).

А виджетами/запускалками я не пользуюсь.

Т.е. изменилось только то, что я свой чудо-скрипт написал:)
Расскажите пожалуйста, как у вас организована работа на основе комнат? А-то я чёт так и не понял, чего такого они могут, чего не могут воркспейсы
5 секунд (что, вообще то, не очень быстро)

Возможно бенчи прводились на HDD и значительная доля времени ушла чтение кода с диска, а на SSD разница будет меньше.

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

Так же я хз как это с АОТ компиляцией согласуется, но опять же благодаря богатому рантайму можно делать такие вещи: Quasar.
Я рад, что для Вас это очевидно. Но вас же читают дети:)
а потом говорим:
gTmp[0] = -999;
for (int i = 0; i < n; i++) {
	for (int j = 0; j < n; j++) {
		System.out.print(g[i][j] + " ");
	}
	System.out.println();
}

И видим, что на самом деле у нас в двумерном массиве используется N ссылок на один и тот же массив gTmp, т, е. используется в N раз меньше памяти. И правильный вариант такой:
st = System.nanoTime();
for (int i = 0; i < n; i++) {
	gTmp[i] = 1;
}

for (int j = 0; j < n; j++) {
	System.arraycopy(gTmp, 0, g[j], 0, n);
}
en = System.nanoTime();


Один прогон которого даст примерно одинаковые времена:

One time 56.96192 msc

Two time 50.87872 msc
На земле сейчас живет минимум 7 миллиардов:-) в одном тока китае уже миллиарда 2 и в индии больше миллиарда:-) а в России порядка 130-140 миллионов…
Я как часть сообщества положительно оцениваю пост и жду продолжения:-) спасибо
Ок, читать невозможно не из-за грамотности, а из-за стиля. Суть и выводы с комментами можно было в 3-4 абзаца уместить
Ну в правилах же русским по белому написано, что приветсвуется грамотный язык… Пост любопытный, но читать невозможно.
простите, но я понял это так: «пришёл, сделал ребёнка и начинаешь максимально от его матери и него самого воздерживаться». как-то не по человечески, имхо. А если бы наши амёбы не создавали детей, то нас бы с вами не было.

Но вообще, я считаю, что не зря люди говорят, что мужчина должен построить дом, посадить дерево и воспитать сына. и с порядком согласен полностью:)
Забавная статья — со многим категорически согласен, со многим категорически нет. Но последней каплей стало: «Старайтесь максимально воздерживаться от женщин», потому как это противоречит «То есть идеальный вариант когда Вы не делаете ничего кроме как создаете что-то» — во-первых, если все дружно воздержимся, то созданное нами никому не надо будет лет через 80, а во-вторых, сомневаюсь, что человек может создать что-то лучшее, чем ребёнка. А тут уж без женщин вообще ни как. В итоге поставил минус и статистика улыбнула, после моего голоса счёт стал +17 -18:)

Information

Rating
Does not participate
Location
Кольцово, Новосибирская обл., Россия
Date of birth
Registered
Activity

Specialization

Chief Technology Officer (CTO), Software Architect
Lead
From 350,000 ₽
Functional programming
Object-oriented design
Design information systems
TDD/BDD
Kotlin
PostgreSQL
Java Spring Framework
Linux
Git
Docker