@kotlin_lang

Страница 326 из 982
gxwin
16.09.2017
16:54:50
20 не 100, уже видно что не грязь люди месят)

Boris
16.09.2017
16:55:01
надо, да, но пока для больших систем замены в инфраструктуре жвм особо нет

просто проблемы-то появляются не сразу

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

Google
Boris
16.09.2017
16:58:09
и вот тут ты задумываешься, что может и ничего, есть это за меня сделает система интеграции, пусть и ценой увеличения сложности

gxwin
16.09.2017
16:58:41
го не мой, но я писал у меня там локатор и ничего нового не мешает старому, то есть там нет убер-либы которая навязывает как и что делать, поэтому все другие либы ты просто подключаешь и адаптируешь сам

ты просто реально думаешь что спринг это единственно правильная архитектура

НО

не что не мешает тебе добавит модуль в систему, если он действительно модуль

Boris
16.09.2017
17:00:14
что хорошего в том, что ты велосипедишь интеграцию? всё равно приходится делать какое-то переиспользование

gxwin
16.09.2017
17:01:47
чтоб локатор был локатором, и не читать потом доку в целую книгу "как интегрировать А в B через С"

Boris
16.09.2017
17:01:58
ты просто реально думаешь что спринг это единственно правильная архитектура
спринг это не архитектура, на нем можно сделать очень разную архитектуру

gxwin
16.09.2017
17:03:24
есть те рамки которые спринг для тебя устанавливает и то как ты его можешь расширять и взаимодействовать - это называется фреймворком и это есть архитектура.

Boris
16.09.2017
17:03:28
хотя спринг навязывет использование инверсии контроля в какой-то степени и жестко назяывает использование контейнера, но в остальном он достаточно гибок, чтобы сделать архитектуру так, как считаешь нужным

gxwin
16.09.2017
17:03:55
помоему от гугла есть интегратор DI без попытки спасти все человечество - почему бы не взять его?

или без спринга уже весь стек не прикрутить?

Google
Boris
16.09.2017
17:04:48
возьми, в чем проблема-то?

на андроиде насколько я знаю его активно используют

gxwin
16.09.2017
17:05:43
почему же спринг не берут? Случаем не из-за того что там "намесили"?))

Boris
16.09.2017
17:06:00
но если я собираюсь делать большую микросервисную систему, то я возьму спринг

gxwin
16.09.2017
17:06:35
большую микросервисную теперь у меня испанский стыд

Ладно проехали, ничего личного, но не одним спрингом джава живет

надеюсь в котлин это тянуть не будут

Кстати, даже тот WebFlux, который анонсировали - даже сами авторы понимают, что для простых вещей нужно тоже простые решения.

Boris
16.09.2017
17:11:13
большую микросервисную теперь у меня испанский стыд
а ты наверное думаешь, что люди с этими микросервисами мучаются от хорошей жизни, а не потому что системы слишком большие?

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

точнее никто не хочет возиться со спрингом и его объемной книгой ради лишь IoC, а до супер-пупер-интеграций в таким системах не доходит

да и порой проще накастылять код за пару часов, чем читать книгу по спрингу и какие там конфигураторы для конфигураторов создавать

вот ktor выглядит как то что нужно, спринг mvc - это намесили))

Или вот, django - тоже очередное намесили, а вот фласк и модули к нему - выглядит годно

Монолитные системы зло, хоть и упрощают некоторую начальную разработку

Еще один момент, вот разработчики радуются, что у них совместимость с джавой, но на самом деле, те кто хотят джаву, они останутся и так на ней, так как IDE и так дает гибкости и удобства работы с ней (ну еще начальник не позволит). А вот такие люди как я (а такие есть), взяв новый язык, который лучше чем джава, они уже как-то не хотят писать на "старой" джаве и тащить туда спринги, хибернейты (я видел более годные либы уже на котлине с DSL, хотя надо отметить что Spring Data тоже вкусная штука). Я надеюсь андроид вышебет из котлина все эти энтерпрайзы ?

Boris
16.09.2017
17:35:17
Монолитные системы зло, хоть и упрощают некоторую начальную разработку
монолиты разрабатывать на порядок проще, но вот масштабировать.. а что касается того, что микросервисы пишут кто на чем хочет, это иллюзия. Такая независимость от языка возможно только в гигантской инфраструктуре, где соединяются части системы, которые могут иметь полностью свои инфрастуктуру, которые могут позволить себе её разрабатывать и поддерживать, а это как можно догадаться не каждый себе может позволить

чот я потерял суть беседы, ладно, всё это болтовня довольно бессмысленная по большому счету, и во многом вкусовщина

gxwin
16.09.2017
17:40:13
ну почему же, есть какая-нибудь вебморда, например ютуб, морда грузит блок с видео, а комменты например вообще другой сервис на другом языке каком-то (понятно что через аякс, может даже морда проксирует, не важно). Удобства этих микросерисов, даже если написал на плохом языке и всех уволил - можно потом переписать будет этот блок. Или например морду написать на питоне, а какой-нибудь рендиринг картинок уже на го, си...

Не каждый мечтает монолитом морду на сях писать)

Google
gxwin
16.09.2017
17:42:19
Тут даже на го что-то мелкое не так страшно написать. Нужен сервис локатор? Да я тебя умоляю, проще контекст передать прям с жесткой хард-сылкой на сервис

Boris
16.09.2017
17:43:27
я же выше писал, что это только взучит хорошо, до тех пор, ока не понимаешь, что для другого языка нужно еще столько же решений сделать, сколько для предыдущего, сделать полностью отдельную инфрастуктуру и тд. Это стоит столько денег, что этим просто не будут заниматься, если только это не реально гигантская корпорация

Тут даже на го что-то мелкое не так страшно написать. Нужен сервис локатор? Да я тебя умоляю, проще контекст передать прям с жесткой хард-сылкой на сервис
какой контекст? и да, жесткая ссылка локальном конфиге работает в работает до какого-то момента, но потом начинаешь замечать, что деплоймент всё сложнее и сложнее, затраты на конфигурацию разных окружений всё больше и вот уже у тебя сервислокатор, клиент к которому ты пытаешься навелосипедить на гоу

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

gxwin
16.09.2017
17:48:35
Тут смысл понятен что велосипеды - это плохо, я за то чтобы котлин (как новый и более гибкий язык) был такой же простой как например го или питон. Нужен локатор - подключил либу, нужны сессии подключил либу, нужна ORM - подключил. А не тащить весь джава ад со спрингом, еще и ЕЕ в микросервис 100мб и превращать xml в эксепшены :) В общем, ладно, я ушел)

Глеб
16.09.2017
17:49:18
Но питон ведь не простой...

gxwin
16.09.2017
17:49:36
>маштабируемость вдруг понадобилась, а у тебя жесткие ссылки, ой Если ссылка это интерфейс - то ничего страшного, а если коду вообще 2000 строк то и IDE заменит :)

Anton
16.09.2017
17:50:02
ну попроще джавы

Глеб
16.09.2017
17:51:17
Вы ещё скажите, что яваскрипт проще явы

по факту там только в ногу выстрелить проще

Boris
16.09.2017
17:51:44
Sasha
16.09.2017
17:52:34
Народ, что не так с этим классом? Не может его в декс засунуть.( Это если что класс из khttp https://gist.github.com/iSanechek/fd086da6f25c59d61bdb525d3f678dba
Пофиксил выключением Instant run'a тут вон целая трагедия по этому поводу https://issuetracker.google.com/issues/37117031

Anton
16.09.2017
17:52:59
я хз как ты вычисляешь сложность языка

Igor
16.09.2017
17:53:29
Пофиксил выключением Instant run'a тут вон целая трагедия по этому поводу https://issuetracker.google.com/issues/37117031
Кто-то им оказывается еще пользуется ? (первым делом оключаю в idea)

Boris
16.09.2017
17:53:51
народ, а я не рассказывал еще, как я сделал убер-билд на грейдл+котлин?

Sasha
16.09.2017
17:55:22
Кто-то им оказывается еще пользуется ? (первым делом оключаю в idea)
да иногда включаю посмотреть и забываю выключить.)

Boris
16.09.2017
17:55:27
всё хотел статью написать, но времени нет

gxwin
16.09.2017
17:57:04
>Нужна ОРМ -- подключил, нужен веб -- подключил Это в джаве, в каком-нибудь питоне тебе надо будет только в конфиг что-то написать и все. То есть по сути спринг решает подключение этих библиотек, потому что подключать их сложно, а почему сложно - потому что намесили. Я поэтому и говорю на другие языки посмотреть, многих сложнойстей джавы нет вообще, которая она гордо решает много лет. А если и были такие сложности в других языках, то их решали конструктивно, а не клепали очередной слой поверх еще слоя и еще слоя, пока спринг не пришлось придумать для этих адаптаций

И кстати спринг MVC который сейчас, это не эволюция джавы, это они наконец-то посмотрели как в другом мире живут. Если бы не посмотрели, месили бы какую-то адаптацию сервлетов и радовались - что только у них есть такая либа которая решает их проблему :)

Google
Boris
16.09.2017
18:07:44
>Нужна ОРМ -- подключил, нужен веб -- подключил Это в джаве, в каком-нибудь питоне тебе надо будет только в конфиг что-то написать и все. То есть по сути спринг решает подключение этих библиотек, потому что подключать их сложно, а почему сложно - потому что намесили. Я поэтому и говорю на другие языки посмотреть, многих сложнойстей джавы нет вообще, которая она гордо решает много лет. А если и были такие сложности в других языках, то их решали конструктивно, а не клепали очередной слой поверх еще слоя и еще слоя, пока спринг не пришлось придумать для этих адаптаций
нет, в джаве это требует "слоя" интеграции совсем по-другой причине. Потому что в отличии от довольно простых систем, которые используются для питона, в джаве библиотеки очень мощные, часто именно из за того, что они прокачены на всяких "энтерпрайзах" и позволяют делать намного больше и намного гибче кастомизировать нюансы. В системе же, которая подключается одной голочкой настроить обычно можно только одно включена она или выключена. А спринг мвц, наподобие того как он сейчас выглядит в спринге появился еще в первых версиях, по крайней мере во втором спринге уже было что-то вроде того, что есть сейчас. В то время еще был стратс, тоже типа того. Т.е. это где-то 2006-2007 год, что же это за миры-то в то время были, куда можно было подсмотреть?

gxwin
16.09.2017
18:30:26
Ну вот что сложного в подключение логера? Что сложного в подключение ORM? В чем тут сложность именно джавы от других языков? Опять из серии что джава решает какие-то космические проблемы и поэтому все у нее так сложно?

Что сложного в подклюение сервера, роутера?

...даже у питона есть в орм пул коннектов, в го вообще встроенный, иди подключи в джаве, так там даже отдельно существует два вида коннектов, один прост, другой под пул. Ну зачем?? какая разница когда ты делаешь get - откуда тебе дадут соединение?

Но джава это смело решает - сама создала, сама решила.

Глеб
16.09.2017
18:37:16
Я начал терять нить повествования

gxwin
16.09.2017
18:40:16
Энтерпрайз зло, тянуть эту каку в священный и чистый котлин - зло

типа такого)

Джава устарела не только синтаксисом но и либами

Глеб
16.09.2017
18:41:14
Та просто я сейчас пишу бэкенд на питоне и вот у меня прям нехорошее жжение начинается, когда я читаю как там хорошо

особенно в части "магии"

gxwin
16.09.2017
18:41:58
что именно жжет?)

не 2.7?

Глеб
16.09.2017
18:42:13
отсутствие помощи от IDE

нет, 3.6

берем SQLAlchemy и бац - sa.func

руки оторвать человеку, который это придумал

Михаил
16.09.2017
18:42:52
отсутствие помощи от IDE
так всегда после IDEA/AS/норм IDE

? animufag ?
16.09.2017
18:43:19
отсутствие помощи от IDE
Ну да. Как бы глупо не было но иде очень полезно когда много кода написано.

gxwin
16.09.2017
18:43:44
а как ты хотел в динамической типизации?

Google
gxwin
16.09.2017
18:44:22
Ну вот пример

Глеб
16.09.2017
18:44:44
во-первых динамическая типизация и модуль func - не связаны. Последний работает на... я даже не знаю как это назвать. В случае жабы это было-бы чем-то вроде кодогенерации в рантайме

? animufag ?
16.09.2017
18:45:04
берем SQLAlchemy и бац - sa.func
Просто интересно что за проблема? Не работал с sqlalchemy

Глеб
16.09.2017
18:45:54
Просто интересно что за проблема? Не работал с sqlalchemy
Когда тебе надо вызвать функцию в SQL, то ты берешь модуль func и пишешь что-то вроде func.my_very_important_function

При этом такого метода, поля или чего-либо ещё в модуле не существует

оно будет сгенерировано в момент обращения

соответственно отсутствует какая-либо проверка правильности написанного кода, окромя "запустить и посмотреть"

gxwin
16.09.2017
18:46:53
а в джаве бы тебе IDE помогла?))

? animufag ?
16.09.2017
18:46:55
А это ок

Ну жёстко конечно там даже греп не поможет найти откуда эта функция

Глеб
16.09.2017
18:47:49
а в джаве бы тебе IDE помогла?))
джава не даст так сделать, она вынудит написать класс, интерфейс и чего-то-там ещё

gxwin
16.09.2017
18:47:56
в любом случае это вопрос к ide и достоинствам и недостаткам динамической типизации

? animufag ?
16.09.2017
18:47:57
Я так понимаю речь о хранимках?

gxwin
16.09.2017
18:48:02
мы же про архитектуры

Глеб
16.09.2017
18:48:08
те-же func.count

? animufag ?
16.09.2017
18:48:42
Алсо помню историю как переменные из питона автомагически пробрамывались в джс

Глеб
16.09.2017
18:49:05
а ещё там есть множественное наследование

и можно в родительском классе использовать методы наследника

последнее воспламеняет жопы всем коллегам .net-чикам в радиусе

ибо наследил там один товарищ, а потом стали переписывать на .net

Страница 326 из 982