|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Добрый день! Присвоение полям объекта я обычно делаю так Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9.
В примерах видел так Код: java 1. 2. 3. 4. 5.
Но у меня это вызывает ошибку синтаксиса. Что нужно изменить в среде разработки (intellij idea) ? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 14:43 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
IgorD Что нужно изменить в среде разработки (intellij idea) ? Ничего ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 14:52 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
IgorD Но у меня это вызывает ошибку синтаксиса. С вероятностью 99.9999999 % - она и есть, ошибка синтаксиса IgorD видел так На заборе написано .... А там дрова лежат ( C ) народная мудрость Все в жизни не правильно. Горло промочишь, ноги не ходят, ноги промочишь, горло болит ( C ) еще одна народная мудрость ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 14:55 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, немного радует, что не я один не знаю :). Но вопрос остается ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 15:03 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Какой вопрос? Что в словах "ошибка в синтаксисе" Вам не понятно? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 15:05 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
читайте книжки. Или по английски, или зайдите в любой книжный магазин, или закажите на ozon.ru https://docs.oracle.com/javase/specs/jls/se8/html/index.html https://www.ozon.ru/category/knigi-16500/?from_global=true&text=Java ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 15:08 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, обещаю поделится ответом, когда найду :) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 15:13 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
I. Сорри за impolite, просто нервы. Вежливо мне просто не сформулировать. II. Со мной не надо ))) 1. Ответ я и так знаю. 22366360 2. Так долго, как Вы будете искать другой ответ на Ваш исходный вопрос, боюсь я не проживу. Если есть какой-то другой вопрос. Например, что именно и почему в той последовательности букв, которую Вы написали, дает ошибку, то приводите: 1. Нормальный код, который можно скомпилировать и увидеть ошибку 2. Как минимум: название и номер версии библиотек которыми Вы пользуетесь. Т.к. догадываться, из какой помойки взяты SendMessage и TelegramApiException - телепаты и гадатели по хрусталым шарам конечно есть, но это сильно утомительно. 3. На каком заборе Вы что-то видели. Или если у тиктокиров или youtube стримеров, то на каком канале и в какую минуту. Опять таки, телепатов нет. 4. Текст сообщения об ошибке так, как выдает среда разработки/компилятор (добуквенно). А не в Вашем пересказе ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 15:26 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Скорее всего автору нужен шаблон Builder. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 15:27 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev IgorD Что нужно изменить в среде разработки (intellij idea) ? Ничего +1 Хотя я люблю в одну строку))) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 15:31 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
mayton Скорее всего автору нужен шаблон Builder. Тут от for многих тошнит ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 15:32 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
mayton Скорее всего автору нужен шаблон Builder. Не мение точный и бесполезный ответ, как и мой первый 1. Если автор не способен понять, в каком месте последовательности букв у него "ошибка синтаксиса", то "тут программист нужен". Но с этой проблемой, как известно, нужно идти в соседний подфорум 2. Если автор что-то увидел у youtube стримера, то обычно AFAIK, можно задонатить стримеру и спросить у него. 3. Подозреваю, что если п.1 истенно, то что такое Builder, что такое шаблоны автору лучше голову себе не забивать. А хоть какую-то книжку "Java для чайников" почитать. Хотя бы первые главы. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 15:37 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
https://github.com/rubenlagus/TelegramBots/blob/master/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendMessage.java писец.... поубивал бы.... все на анотациях ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 15:44 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Newby заходит вайти. Обычное дело. И тут надо быть осторожным. Дашь совет юзать билдер. Он потом везде будет пихать билдер даже там где он не нужен. Пусть конструктор с параметрами сделает. Хоть 2 варианта будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 15:45 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
mayton, Нашел проект https://github.com/SergioViacheslaev/RZDTicketsMonitoring-TelegramBot в котором применяется такой подход к написанию кода, и ошибки синтаксиса нет ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 16:00 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Eще раз Sorry. Нервный я сейчас. Вежливо просто не сформулировать. Может я бы и попытался у себя откомпилировать, но с учетом, что ни библиотека, ни даже версии библиотек не указаны, смысла в этом ровно нол. Довод "видел так" это просто за гранью. Мало ли что где видел и где что написано. Ну и "что нужно изменить в среде разработки" так же феерично. Потом окажется, что библиотекой автор пользуется одной, примеры от другой.... но что-то не работает. А мы глупые и злые Вот ровно то, о чем я и говорил в 22361486 И даже с темой вопроса почти угадал ))) какой я проницательный ясновидец ! Аве мне ! ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 16:05 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, таки да, версия библиотеки другая. А я уж обнадеялся, что появились новые нанотехнологии в написании кода. Вопрос закрыт ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 16:12 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev ... поубивал бы.... все на анотациях (попробую поадвокатировать) как это можно? аннотации заменяют программиста путем декларации его намерений. Вы же используете sql для работы с бд, и не сильно печалитесь от того, что в конкретном месте сами могли бы реализовать поиск лучше и эффективнее. И более того, с подозрением на шизофрению смотрите на тех, кто на самом деле так думает... Аннотации - путь к идеальному декларативному прикладному коду - будучи однажды записанным, он больше никогда не меняется и программа автоматически в каждой следующей версии работает все лучше и лучше, так как те программисты, которые отвечают за содержание библиотек и компоновку системы, непрерывно их совершенствуют. Прикладной программист, как человек пишущий содержательный код, должен быть изжит, их просто не должно быть так много миллионов. Он должен записывать свои намерения в виде аннотаций, а система сама находить способ комбинации библиотек для реализации его пожеланий. Тут на 100% как с sql - если ты sql используешь - то кто ты - конечный пользователь субд или программист? В этой аналогии - если аннотации используешь - значит ты конечный пользователь, не имеющий права ломать систему. А когда ты программист, и пишешь код, реализующий содержательные алгоритмы, то места для аннотаций в нем непосредственно, скорее не будет. Код либо есть и представлен явно, либо его нет по причине посадки в чёрный ящик аннотаций - он становится технически ненаблюдаем, и тогда судить о нём возможно только с применением продвинутых экспериментальных методов английских ученых... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 16:14 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
IgorD Нашел проект ... в котором применяется такой подход к написанию кода, и ошибки синтаксиса нет Ну значит там ее нет А у Вас есть Ну и это не "присвоение". Это специальным образом сделанные сетторы, которые паралельно возвращают this. Называется Builder. Синтаксически - вызов ф-ций. Ищите, в каком именно месте Вашей "последовательности букв" Вы сделали синтаксическую ошибку. Разбирайтесь, почему оно так. За Вас сделать это сложно и почти невозможно. Т.к. никакого кода, который можно было бы попытаться скомпилировать, что бы увидеть и воспроизвести проблему, Вы не привели. Мало того, Вы даже не сказали, чем же Вы пользуетесь. То, что это какая-то х..ня от телеграмма - вроде понятно по названию исключения, но для воспроизводства проблемы, этого крайне мало. p.s. присвоение это оператор = ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 16:16 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Нана-технологии будут с JavaRecords (since JDK16). Там будешь лупить сущности в 1 строчку. Like Scala CaseClasses. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 16:17 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
booby Прикладной программист, как человек пишущий содержательный код, должен быть изжит, их просто не должно быть так много миллионов. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 16:23 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
booby, Я полез в сорцы, что бы посмотреть, что же такое setChatId которое пытается вызвать автор топика.... и вообще не нашел такого. Зато "вроде есть" анотация builder. И.... Могу я по этим сорцам сделать хоть какое-то предположение, что же могло пойти не так?... Фигли с два. Нужна среда разработки, нужен проект, нужно провалится в сгенерированный (возможно разджавленый / дизассемблированный) код. Просто по коду программы - я фиг могу сказать, что же там происходит. Ну и как я понимаю, анотоации нифига не стандартизированны. Т.ч. в одной среде сборки назвали builder в плане "последовательное присвоение" в другой, юные генеальные падованы, могли сделать "пошел ты нафиг дядя", что еще больше добавляет к чтению и интерпритации "буковок и циферек" ( C ) в исходниках. Это примерно как замечательные типы Date, Time, BigInteger... 100500 библиотек и одно название класса... бл.... что же делает код и что именно он вызывает, глазами фиг поймешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 16:24 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, когда писал этот пост, надеялся, что может появилось что-то нечто project lombok . В свое время, когда начал его использование, код удалось сократить значительно. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 16:38 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Как вариант автор не настроил среду под Lombok https://projectlombok.org/setup/intellij Кстати я-бы настойчиво просил Игоря прикладывать не скрины со среды а лог сборки сборщиком. Градл есть? Значит должен уверенно собирать. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 16:39 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
mayton, у меня последней версии библиотека telegrambots-spring-boot-starter, и там они перекроили немного. По этому ошибка синтаксиса. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 16:42 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Ты не находишь странным что мы всё время читаем не стектрейс реальной ошибки а твой пересказ? Это очень грустно. Нам нужны детали а не изложение с чужих слов. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 16:44 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
mayton, вопрос мой обобщенный, по оптимизации кода, из разряда, "а можно ли так, и как это сделать, я видел другие так пишут?" :) У своем коде я последовательно описал присвоение, и ошибки компиляции нет ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 16:48 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev .... что же делает код и что именно он вызывает, глазами фиг поймешь. суть дела в том, что ты ни коем случае не должен над этим задумываться. Задумался - пропал, сломал концепцию, занялся тем, что не является твоим делом, то есть - занялся прямым саботажем и вредительством. Но ты должен уметь подключать аннотацию. Вот что она делает в космическом корабле - попадем на орбиту - там разберемся по наблюдаемому поведению.... А взорвется - запустим следующего космонавта-испытателя. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 16:52 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Говоря сухо - да можно. Только я билдер делаю так. Код: java 1.
И без всяких Ломбоков. В среде другой плагин есть для этого. Генератор кода-билдера. Только напиши билдер хоть раз руками сам. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 16:52 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
booby ... А взорвется - запустим следующего космонавта-испытателя. Alex Besogonov @americandreamy Мда. А ещё говорят, что Россия победила нацизм. По-моему, проиграла. / из дискуссии к https://varlamov.ru/yjUfrihkU3- / ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 17:00 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
booby, Мое имхо что будет следующий этап за Декларативным программированием. Аннотации это просто один из способов (реализация). Сильно не зацикливайся на нём) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 17:07 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mayton Скорее всего автору нужен шаблон Builder. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 17:18 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Мое мнение, что достаточно простой (ранее) и понятный (ранее) язык преврашают в помойку, где без полбутылки не разберешься. Уже расказывал, что пришлось работать с программой где части были написаны на Cobol'е. Даже книжек читать и покупать нам не потребовалось. Все и так понятно. Ньюансы синтаксиса пофиг, но что делает программа, что с чем складывает, что от чего вычитает и в каких случаеях какие ошибки говорит - было понятно. Для этого нужно иметь хоть какой-то опыт в программирование + знать пару слов по английски (for, if, while, integer etc...) На данном форуме иногда постят вопросы/код на Scala, стримах и так далее. Вроде и код 5-10 строк, но что он делает - х.з. Реально нужно бежать в магазин и брать полбутылки Современная Java, прости господи, начинает "по понятности" напоминать Perl или Forth. Фиг что поймешь, зато мало буковок. Смотрите какой простой (ха-ха-ха) и емкий язык мы придумали! ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 17:20 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Я уже десять лет назад, задавал вопрос, нафига эти портянки геттеров/сеттеров.... Теперь да, прогресс. Сначала ху... всюду внедрили, теперь сделали еще одну ху... в виде анатоций, что бы с предыдущей ху... стало проще жить. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 17:23 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev booby ... А взорвется - запустим следующего космонавта-испытателя. Alex Besogonov @americandreamy Мда. А ещё говорят, что Россия победила нацизм. По-моему, проиграла. / из дискуссии к https://varlamov.ru/yjUfrihkU3- / [spoiler] offБлин да этож зенитка! M1117. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 17:23 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
А самое главное, что те, кто пытаются сделать "следующий этап за Декларативным программированием", полностью отсутвует понимание, что же они хотят получить в результате. Поэтому рождаются какие-то недоношенные огрызки. Вроде и идея - неплохая, но идея + как сделано - за гранью добра и зла. Те же самые геттеры/сеттеры. Взять Delphi. Взяли и не побоялись ввести принципиально новую констуркцию в язык property (если я не ошибаюсь). Снаружи - переменная (работаешь простыми присваиваниями, без всякой порнографии с геттерами/сеттерами), внутри, если нужно переопределить поведение по set/get, можешь навесить свой setter, getter. Можешь, если надо. А если не надо, то ничего и не делаешь. Что в Java... нам наконец (слава богу, слава яйцам) надоели простыни set'ов, get'ов, мы сделали анатоации! Ура! но сеттеры, геттеры мы трогать не будем, будем их генерить, захломлять код, а в JIT оптимизаторе разоптимизировать обратно. 2021 год. У Вас в квартире груды мусора и дурной запах - не волнуйтесь, мы наконец придумали для Вас диван, под которым теперь мусора будет не видно. В следующей версии, мы обещаем добавить духи, что бы избавиться от запаха. IMHO ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 17:42 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
IgorD "а можно ли так, и как это сделать, я видел другие так пишут?" Дьявол, как обычно, кроется в деталях. Которых у вас нет. Есть только традиционное "Уважаемая редакция. У меня в подвале ..."У своем коде я последовательно описал присвоение, и ошибки компиляции нетХвост, тьфу, синтаксис языка программирования это такая вещь, которая исключает "нечто неопределённое". Если вы получили синтаксическую ошибку - проблема в вашем коде. В вашем, а не в шпаргалке, с которой вы списывали. P.S. Встречались как-то с однокласниками и вот так звучала крайне поучительная концовка небольшой истории: "И тогда я поняла, что у тебя списывать не надо. Ты-то объяснишь как решил, а я - нет". ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 17:46 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev По-моему, проиграла. Во-первых, не "Россия победила", а "победил Советский Союз". Это важное и ключевое обстоятельство. А во-вторых - фашизм это буржуазная диктатура. И понимать это должен даже либерал. Просто потому, что жить в условиях буржуазной демократии - сильно безопаснее. Даже для либерала. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 17:50 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev ... Современная Java, прости господи, начинает "по понятности" напоминать Perl или Forth....Смотрите какой простой (ха-ха-ха) и емкий язык мы придумали! это две разные истории. История про аннотации - про то, что ты не должен знать и понимать, как работает твой код. И для этого много разных объективных причин, которые, если свести в одно целое, сведутся к тому, что а) человеку, который понимает что делает, необходимо больше платить, а денег (на всех программистов) нет б) такой человек вреден, опасен и затрудняет разработку наличием обоснованного мнения о реализации конкретной библиотеки и необходимости ее использования. А у "увеличения понятности языка" со временем есть объективные причины, на которые указал Страуструп в недавно обсуждавшемся интервью - игрушечный язык может быть простой, но при расширении области его применения он объективно становится сложным, вслед за желанием решать более сложные задачи. Правда, методом применения массового коллективного образования можно получить сложный язык и без увеличения сложности решаемых задач. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 17:50 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
booby а) человеку, который понимает что делает, необходимо больше платить, а денег (на всех программистов) нет б) такой человек вреден, опасен и затрудняет разработку наличием обоснованного мнения о реализации конкретной библиотеки и необходимости ее использования. Вот прямо средневековье, когда есть чёткая, идеологически выдержанная иерархия. Только средневековье базировалось на твёрдом материальном фундаменте военной силы аристократии, а современная "элитарность" - на простом когнитивном искажении. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 17:56 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Basil A. Sidorov ...Реакционное и опасное мракобесие. ... базировалось ... на простом когнитивном искажении. все образование вообще строится на простом когнитивном искажении. И оно не может быть не элитарным... Спросите об этом Ноама Хомского - он больше всех об этом знает, а популярно даже Юваль Ной Харари сможет объяснить :) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 18:16 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Никанор Кузьмич PetroNotC Sharp пропущено... главное штоб идолом не стало. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 18:17 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
booby История про аннотации - про то, что ты не должен знать и понимать, как работает твой код. Дык и при ООП мы можем не знать как работают кишки. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 18:24 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
booby И оно не может быть не элитарным... Тропа, превращающая человека разумного в интеллектуальный придаток промышленного инструмента. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 18:31 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
PetroNotC Sharp booby История про аннотации - про то, что ты не должен знать и понимать, как работает твой код. Дык и при ООП мы можем не знать как работают кишки. имхо, стратегически - вся. Программист не должен догадываться, почему его код вообще работает. В определенном отношении это идет дальше ООП. ООП ограничивается фиксацией обязательствами объектов на уровне связей между их интерфейсами. Похожий в ооп момент состоит в том, что подключаемый "чужой" объект для тебя черный ящик, но само взаимодействие с ним ты выписываешь явно. Недостаток ООП состоит в том, что у тебя остаются концы, потянув за которые, ты сможешь решить - работает ли программа вообще и в чьем коде содержится проявившаяся ошибка. Аннотации в этом смысле гораздо лучше - глубина их воздействия на сам код и его поведения непредсказуема. Это гораздо ближе к совершенству - для понимания того - работает ли кусок кода, нужно применять научные методы статистического анализа. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 18:38 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
booby ... Программист не должен догадываться, почему его код вообще работает. ... Аннотации в этом смысле гораздо лучше - глубина их воздействия на сам код и его поведения непредсказуема. ... Это гораздо ближе к совершенству - для понимания того - работает ли кусок кода, нужно применять научные методы статистического анализа. Очень сильно напоминает "автостопом по галактике'. Скажите, не Вы ли были изобретателем Земли? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 18:41 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
booby, Тогда вам в нейронные сети. Они на других принципах. Зачем вы над нашими программистами издеваетесь? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 18:47 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Basil A. Sidorov booby И оно не может быть не элитарным... Тропа, превращающая человека разумного в интеллектуальный придаток промышленного инструмента. Думаю, последний тезис не на 100% верен, но до определенной степени так и есть. Здесь все-таки предполагается, что должен быть набор людей, через которых осуществляется контроль над самими "промышленными инструментами" - и у них должно быть другое образование. Сейчас уже практически пришла пора, когда людям можно платить просто за то, чтобы они ничего не делали, совсем ничего, но не возмущали при этом общественного спокойствия. (У Бредбери пожарный на всякий случай сжигал книги в домах людей, чтобы те не выбивались из рамок ООП и прочего текущего образования для всех. Имени этого пожарного появился HTTP код 451) Чтобы легко управлять человеком, с помощью машины или без, лучше всего, когда он не понимает, что он делает и зачем. Хорошо, когда у него нет своего дома, семьи, своей работы, любой свой области с прямо взятой на себя ответственностью за происходящее в ней. Но он должен быть определенным образом образованным, иначе его управляемость плохо контролируема. ... Разного рода антиутопий, освещающих вопрос "элитарности и образования" было не так мало написано. Так или иначе, все они сходятся в одном - предполагаемый успех управления состоит в том, что управляемый не понимает смысла управленческих действий. Чем фрагментарнее восприятие, короче горизонт видимости - тем проще и надежнее управление.... ---------- Применительно к программированию есть объективный фактор - человек плохо справляется с задачами, начиная с определенной сложности - плохо считает дальше трех, а тот кто умеет считать до семи - вероятно, находится в прямом общении с богами. Поэтому какой-то способ запрятывания сложности в "интерфейсы", так или иначе, неизбежен. Аннотации, видимо, привлекательны тем, что в одну аннотацию запихивается, потенциально, произвольная сложность. Существо же дела в том, что когда самих аннотаций становится больше трех - возникает проблема - какую же из них применять. А когда их число дорастает до семи, задача приобретает черты нерешаемой. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 19:21 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
PetroNotC Sharp booby, Тогда вам в нейронные сети... Эта, да - сила.... Никто не знает как они работают. Просто они так научились работать, вот и всё. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 19:23 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
booby Аннотации, видимо, привлекательны тем, что в одну аннотацию запихивается, потенциально, произвольная сложность. Существо же дела в том, что когда самих аннотаций становится больше трех - возникает проблема - какую же из них применять. А когда их число дорастает до семи, задача приобретает черты нерешаемой. именно из за этих недостатков они умрут ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 19:33 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
booby PetroNotC Sharp booby, Тогда вам в нейронные сети... Эта, да - сила.... Никто не знает как они работают. Просто они так научились работать, вот и всё. ну дак не торопитесь пихать всюду аннотации. Искусственно насаждая. Пока я как прогер хочу чтобы каждый оператор делал мне точно по хелпу. Не аннотация, а оператор ЯП. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 19:35 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
booby Сейчас уже практически пришла пора, когда людям можно платить просто за то, чтобы они ничего не делали, совсем ничего, но не возмущали при этом общественного спокойствия. Техническая возможность обеспечить прожиточный минимум для всех появилась на рубеже конца девятнадцатого - начала двадцатого века. За прошедшее время появилась техническая возможность обеспечить не просто прожиточный минимум, но и комфортное проживание. Что же до всей прочей фашисткой муры, то она не может работать по целому ряду объективных причин. Даже в рамках той самой буржуазной диктатуры для которой вся эта мура создавалась и создаётся. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 20:10 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Basil A. Sidorov ... Техническая возможность обеспечить прожиточный минимум для всех появилась на рубеже конца девятнадцатого - начала двадцатого века. ... Карл Баллод. Государство будущего... ? вроде по шизовости что-то близкое к Хазину или Фоменко. Сложил, поделил, получил какую-то чушь IMHO ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 20:40 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Я думал мы просто очертим границы мета-программирования. Дескыть что можно и что нельзя.... А мы - в политику и конспирологию.... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 23:43 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
mayton ...очертим границы мета-программирования. Дескыть что можно и что нельзя.... это уже слишком широко, вряд ли очертим. в рамках терминологии, связанной с метапрограммированием, я бы так сформулировал то, что мне не нравится в аннотациях: одно дело, когда связанные с метапрограммированием возможности четко и ясно ограничены прямым включением в синтаксис языка компактного набора возможностей. Это сохраняет впечатление о целостности и компактности синтаксиса, при чтении ты явно читаешь текст, написанный на едином целостном языке. Оставляет возможность думать, что если на самом деле понадобится, то вооружась карандашом и листком бумаги, ты размотаешь читаемый исходный код в фактически выполняемый, однажды изучив этот фиксированный набор средств. Другое дело, когда предоставляют "механизм", "конструктор", с самого начала не имеющий фиксированных границ. Теоретическая возможность "размотки" вроде и не отобрана, но фактически она уже вряд ли работает. А чтение становится задачей, родственной чтению "Войны и Мира" - ты должен изучить французский язык до того, как начать чтение романа, написанного на русском. Причем французских языков в тексте встретится столько, сколько независимых подмножеств аннотаций вздумается использовать писателю. И, в отличие от современных изданий собственно "Войны и Мира", в примечаниях перевода ни с какой версии французского ты не найдешь. Мое мнение состоит в том, что это ведет к фактической нечитаемости программистского шедевра. С другой стороны, собственно код становится предельно компактным и бессодержательным. Use old plain java object, Luke. Только не забудь поставить правильную аннотацию. Тогда твой object внезапно оживет и шикарно отработает. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 01:22 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev А самое главное, что те, кто пытаются сделать "следующий этап за Декларативным программированием", полностью отсутвует понимание, что же они хотят получить в результате. Поэтому рождаются какие-то недоношенные огрызки. Вроде и идея - неплохая, но идея + как сделано - за гранью добра и зла. Те же самые геттеры/сеттеры. Взять Delphi. Взяли и не побоялись ввести принципиально новую констуркцию в язык property (если я не ошибаюсь). Снаружи - переменная (работаешь простыми присваиваниями, без всякой порнографии с геттерами/сеттерами), внутри, если нужно переопределить поведение по set/get, можешь навесить свой setter, getter. Можешь, если надо. А если не надо, то ничего и не делаешь. Что в Java... нам наконец (слава богу, слава яйцам) надоели простыни set'ов, get'ов, мы сделали анатоации! Ура! но сеттеры, геттеры мы трогать не будем, будем их генерить, захломлять код, а в JIT оптимизаторе разоптимизировать обратно. 2021 год. У Вас в квартире груды мусора и дурной запах - не волнуйтесь, мы наконец придумали для Вас диван, под которым теперь мусора будет не видно. В следующей версии, мы обещаем добавить духи, что бы избавиться от запаха. IMHO Kotlin же :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 06:24 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev Карл Баллод. Государство будущего... ? Сложно отрицать прогресс в информационных технологиях, если хотя бы мельком взглянуть на историю их развития. И как профессионалу это, вроде бы, должно быть вам понятно. Но вы, почему-то, отрицаете прогресс в материальном мире, хотя всё наше ИТ целиком и полностью опирается на результаты этого прогресса. Появление двигателей внутреннего сгорания дало техническую возможность создать компактные механические средства наземного передвижения. Это, в свою очередь, позволяет механизировать сельское хозяйство без ограничений мускульной силы тяглового скота. Появление инфраструктуры генерации и распределения электроэнергии ещё раз (после паровой машины) революционизировало промышленность и коренным образом изменило комфортность среды обитания. С моей кочки зрения именно эти два новшества стали ключевыми, хотя за девятнадцатый век много чего создали и усовершенствовали. Проблема в том, что капитализм невозможен без рынка труда. А рынок труда это средство экономического принуждения к труду. Вот и получается, что можно жить комфортно, но требуется искусственно ухудшать жизнь людей или "вывешивать" иллюзорные "морковки" роскоши, за которыми будут бегать "элитарии". Как следствие - капитализм мечется между буржуазной диктатурой (работают под страхом смерти) и базовым доходом (создаём и кормим паразитов). Как побочный эффект, цветут и пахнут всякие гнусности, которые объясняют (и "быдлу" и самим себе) - зачем, собственно, нужна вся эта бессмылица. А глупо это просто потому, что эффективность двух экономических систем уже проверена в прямом и открытом противостоянии Великой Отечественной войны и в ходе предвоенной подготовки двух государств. P.S. Социальная инфраструктура государства не может зависить от предпринимательских способностей и частной инициативы. Просто потому, что здоровье и жизнь большинства не может быть игрушкой меньшинства. А ещё эта инфраструктура должна быть катастрофоустойчивой и надёжно работать даже в условиях частичного разрушения. Что создаёт гигантскую рыночную цену такой системы, а значит - исключает существование всеобщего платёжеспособного спроса. Каждое из этих обстоятельств (а есть и другие) - весомо само по себе, но вместе они просто не оставляют выбора: "Социализм или варварство". ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 06:31 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
booby в рамках терминологии, связанной с метапрограммированием, я бы так сформулировал то, что мне не нравится в аннотациях: одно дело, когда связанные с метапрограммированием возможности четко и ясно ограничены прямым включением в синтаксис языка компактного набора возможностей. Их приходится рассматривать как предельно компактную систему библиотечных вызовов, которая маскируется под элементы языка. Проблема именно в этом: нельзя использовать библиотеку без понимания принципов её организации. И речь вовсе не о коде, который создают эти аннотации - важна их семантика. Смысл, а не конкретное содержание. Аннотации это аналог "плюсатых" шаблонов - "магия", которая "прикидывается" частью языка. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 06:41 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev Мое мнение, что достаточно простой (ранее) и понятный (ранее) язык преврашают в помойку, где без полбутылки не разберешься. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 08:43 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev Мое мнение, что достаточно простой (ранее) и понятный (ранее) язык преврашают в помойку, где без полбутылки не разберешься. Уже расказывал, что пришлось работать с программой где части были написаны на Cobol'е. Даже книжек читать и покупать нам не потребовалось. Все и так понятно. Ньюансы синтаксиса пофиг, но что делает программа, что с чем складывает, что от чего вычитает и в каких случаеях какие ошибки говорит - было понятно. Для этого нужно иметь хоть какой-то опыт в программирование + знать пару слов по английски (for, if, while, integer etc...) На данном форуме иногда постят вопросы/код на Scala, стримах и так далее. Вроде и код 5-10 строк, но что он делает - х.з. Реально нужно бежать в магазин и брать полбутылки Современная Java, прости господи, начинает "по понятности" напоминать Perl или Forth. Фиг что поймешь, зато мало буковок. Смотрите какой простой (ха-ха-ха) и емкий язык мы придумали! Так что с этой точки зрения всякие новшества в Java были полезными. Но язык конечно обрастает жирком, все сложней новичков обучать.. А вот SpringBoot.. Конкурентов у спринга не было, зачем было это придумывать - не понятно. В итоге якобы насколько простая штука как просто DI превратился во что-то что нужно изучать . И это настолько сложно дебажить.. Я вот уже 6ой год пишу проект который начали на SpringBoot'e, и всякий раз когда приходится что-то кастомизировать (выключить спринг бутовое и написать свое или внедриться в механизм) - приходится заниматься глубоким дебагом. Что-то, что раньше делалось за пару минут - на это иногда приходится тратить по несколько часов.. А малыши вообще не понимают что там происходит. Раньше-то бины явно торчали, можно было глазками пробежаться. А счас они просто вслепую копируют аннотации со StackOverflow. И у них нет вариантов постепенно обучаться. Мол, увидел что-то незнакомое - разобрался что это. Потому как ты даже не видишь что эта аннотация подключает, даже не знаешь о том что что-то включено. Если на SO посмотреть - там счас в большинстве вопросов про спринг либы стоит "springboot" тэг. Т.е. народ даже не понимает про какой кусок спринга они спрашивают - они думают что это все просто спрингбут. Один из своих более новых проектов начал на XML конфигурации без package scan'ов. Боже как это приятно видеть, все так просто, вообще времени не уходит ^_^ ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 09:17 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev А вот SpringBoot.. Конкурентов у спринга не было, зачем было это придумывать - не понятно. В итоге якобы насколько простая штука как просто DI превратился во что-то что нужно изучать . И это настолько сложно дебажить.. Я вот уже 6ой год пишу проект который начали на SpringBoot'e, и всякий раз когда приходится что-то кастомизировать (выключить спринг бутовое и написать свое или внедриться в механизм) - приходится заниматься глубоким дебагом. Что-то, что раньше делалось за пару минут - на это иногда приходится тратить по несколько часов.. А малыши вообще не понимают что там происходит. Раньше-то бины явно торчали, можно было глазками пробежаться. А счас они просто вслепую копируют аннотации со StackOverflow. И у них нет вариантов постепенно обучаться. Мол, увидел что-то незнакомое - разобрался что это. Потому как ты даже не видишь что эта аннотация подключает, даже не знаешь о том что что-то включено. Если на SO посмотреть - там счас в большинстве вопросов про спринг либы стоит "springboot" тэг. Т.е. народ даже не понимает про какой кусок спринга они спрашивают - они думают что это все просто спрингбут. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 09:58 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev А малыши вообще не понимают что там происходит. Раньше-то бины явно торчали, можно было глазками пробежаться. А счас они просто вслепую копируют аннотации со StackOverflow. И у них нет вариантов постепенно обучаться. Мол, увидел что-то незнакомое - разобрался что это. Потому как ты даже не видишь что эта аннотация подключает, даже не знаешь о том что что-то включено. Если на SO посмотреть - там счас в большинстве вопросов про спринг либы стоит "springboot" тэг. Т.е. народ даже не понимает про какой кусок спринга они спрашивают - они думают что это все просто спрингбут. +1 Добавлю что в нашем It мире многие процессы идут не от теории. А от практики применения. Тоже самое было с XHTML/Html5. И с xml/json. Побеждает не правльное и концептуальное а "херак-херак и бизнес доволен что фича зашла в течение 1 спринта". В этом есть некая магия наподобие самоорганизующихся простейших систем. И разраб который копи-пастит со стека аннотацию - ведет себя как клетка в клеточном автомате. Удобно двигаться туда? Минимум мозговых затрат? - Двигаемся. И никто архитектурных вопросов просто не ставит. Некому. И нет аудитории. Что говорить об миллионах фрилансеров которые работают сами на себя и решают задачи сиюминутно. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 10:22 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
IgorDЧто нужно изменить в среде разработки (intellij idea) ? В idea-e - ничего, осиль: https://ru.wikipedia.org/wiki/Fluent_interface должна быть версия либы, совместимая с используемой, подключи. посмотри help. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 10:56 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
mayton, В корне не согласен. "Херак, херак и бизнес доволен" это было бы хорошо. Но побеждает НЕ это. Предыдущие лет 15, такое чувство, что побеждали хайп, стартапы, реклама и доклады на конференциях. Смотрите какую мы херню придумали, что с ней делать еще не придумали, но зато IPO на 1 млрд долларов провели (на конференциях конечно все немного по другому рассказывают). После чего большой бизнес (Oracle, MS etc.) посмотрели на это.... подумали, какие мы тупые, а мы зачем-то "херак, херак" занимаемся... и двинулись в то же направления, похерев весь работающий "херак, херак" к чертям собачьим. (Oracle Forms, FoxPro etc..etc...). После этого на протяжении 10-15 лет, кроме майнстрима и хайпа вообще ничего не осталось. Или малопонятный хайп или остывшее говно мамонтов. В общем, выбирайте одно из двух. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 11:18 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev Один из своих более новых проектов начал на XML конфигурации без package scan'ов. Боже как это приятно видеть, все так просто, вообще времени не уходит ^_^ ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 11:30 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev mayton, В корне не согласен. "Херак, херак и бизнес доволен" это было бы хорошо. Но побеждает НЕ это. Предыдущие лет 15, такое чувство, что побеждали хайп, стартапы, реклама и доклады на конференциях. Смотрите какую мы херню придумали, что с ней делать еще не придумали, но зато IPO на 1 млрд долларов провели (на конференциях конечно все немного по другому рассказывают). После чего большой бизнес (Oracle, MS etc.) посмотрели на это.... подумали, какие мы тупые, а мы зачем-то "херак, херак" занимаемся... и двинулись в то же направления, похерев весь работающий "херак, херак" к чертям собачьим. (Oracle Forms, FoxPro etc..etc...). После этого на протяжении 10-15 лет, кроме майнстрима и хайпа вообще ничего не осталось. Или малопонятный хайп или остывшее говно мамонтов. В общем, выбирайте одно из двух. Я-же не говорил что одобряю это. Я просто констатировал что сегмент где работали физики и математики расширился. И хлынули туда экономисты, торговцы и гуманитарии и различного рода чудики и сумашедшие. По разным причинам. По деньгам например. Или просто по своему интравертному складу характера. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 11:36 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Вообще, для хранения мета данных в pojo (entity) аннотации подходят очень хорошо, тупа хранить наименование свойства, формат вывода и прочие описания для валидации, формирования view слоя и т.д. Внедрение функциональности через аннотации - так себе идея (имхо). ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 11:38 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Pojo в Java исторически имеют наиболее странный и неприглядный вид со стороны стороннего разработчика который java не знает. И фреймворки наподобие Lombok решают проблему "заметая" грязь под ковёр. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 11:44 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
am_sasa Stanislav Bashkyrtsev Один из своих более новых проектов начал на XML конфигурации без package scan'ов. Боже как это приятно видеть, все так просто, вообще времени не уходит ^_^ ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 12:24 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev но зато IPO на 1 млрд долларов провели IPO это инвестиции, которые позволяет получать (рисовать) прибыль, даже работая в убыток. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 13:48 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
mayton ... И фреймворки наподобие Lombok решают проблему "заметая" грязь под ковёр. интересное кино. Вы дали нам безумный многословный синтаксис, закакали мозги корявыми представлениями о том кто такая "инкапсуляция" и зачем её едят именно таким извращённым образом, объяснили, почему идеально хорош бессмысленный код, а теперь мы должны взять ломбок чтобы всего этого не видеть при помощи аннотаций, которые бессмысленность за нас подставят? Да у нас теперь нервный тик начнется, если наш отравленный вами глаз этого счастья видеть не будет... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 14:10 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev А вот SpringBoot.. Конкурентов у спринга не было, зачем было это придумывать - не понятно. В итоге якобы насколько простая штука как просто DI превратился во что-то что нужно изучать . И это настолько сложно дебажить.. Я вот уже 6ой год пишу проект который начали на SpringBoot'e, и всякий раз когда приходится что-то кастомизировать (выключить спринг бутовое и написать свое или внедриться в механизм) - приходится заниматься глубоким дебагом. Что-то, что раньше делалось за пару минут - на это иногда приходится тратить по несколько часов.. Попробуйте другие фреймворки. :-) Micronaut, Microprofile и т.д. Я попробовал... При всей монструозности Spring/SpringBoot он всё-таки гибче чем новые "простые"/"легкие" DI-фреймворки. У меня лично всё "странное" со SpringBoot связано с Hibernate. Stanislav Bashkyrtsev А малыши вообще не понимают что там происходит. Раньше-то бины явно торчали, можно было глазками пробежаться. А счас они просто вслепую копируют аннотации со StackOverflow. И у них нет вариантов постепенно обучаться. Мол, увидел что-то незнакомое - разобрался что это. Потому как ты даже не видишь что эта аннотация подключает, даже не знаешь о том что что-то включено. Если на SO посмотреть - там счас в большинстве вопросов про спринг либы стоит "springboot" тэг. Т.е. народ даже не понимает про какой кусок спринга они спрашивают - они думают что это все просто спрингбут. Один из своих более новых проектов начал на XML конфигурации без package scan'ов. Боже как это приятно видеть, все так просто, вообще времени не уходит ^_^ Нафиг XML. Конфигурационные классы наше всио!!!! Меня ещё с версии Spring 3 раздражали XML-файлы, для создания контекста. А навигация по длинной портянке XML-файла это то ещё удвольствие. Плюс SPEL - это жесть. А в конфгиурационных классах можно логику создания бинов делать как хочешь. Плюс можно насоздавать этих конфигурационных файлов можно под любой чих. Включая/выключая их по своей извращенной логике. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2021, 06:36 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev am_sasa пропущено... у меня наоборот, после xml конфига, попробовал springboot, ощущение, что надо программировать, программировать и еще раз программировать... А я ленивый, в конфиг bean наколотил за пару минут и все работает, иногда NP++ достаточно для внесения изменений Зачем?! Обычно всю логику создания бина можно описать в конфигурационном классе. Даже без всяких аннотаций. Точнее нужна пара: @Configuration и @Bean А далее дебажишь только свой код. <:o) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2021, 06:40 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
С моей точки от зрения, ценность конфигов (xml, yaml, props) в том что вы можете вносить изменения без переборки проекта. Это удобно для эксплуатации. Любой девопс после консультаций с вами удаленно сможет поправить какой-то косяк. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2021, 09:05 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
mayton С моей точки от зрения, ценность конфигов (xml, yaml, props) в том что вы можете вносить изменения без переборки проекта. Это удобно для эксплуатации. Любой девопс после консультаций с вами удаленно сможет поправить какой-то косяк. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2021, 09:19 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
mayton С моей точки от зрения, ценность конфигов (xml, yaml, props) в том что вы можете вносить изменения без переборки проекта. Это удобно для эксплуатации. Если насчет конфигов - согласен. То насчет приложения и создания бинов - нет. С учетом CI/CD и микросеврисной архитектуры, то поменять код не сложнее, чем поменять конфиги. Т.к. конфиги тоже надо тестировать. :-) mayton Любой девопс после консультаций с вами удаленно сможет поправить какой-то косяк. Или добавить кучу новых. Конфиги тестировать сложнее, чем код. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2021, 09:22 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Девопс в состоянии сам протестировать пароль или токен. Тем более что на этом уровне уже некого больше призвать. Впрочем мы скатились в конкретику. Я просто хотел сказать что сама идея переноса конфигов бинов из xml в java DSL несёт в себе технический долг. И его объем ещё Никто не посчитал. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2021, 09:35 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
mad_nazgul Stanislav Bashkyrtsev А вот SpringBoot.. Конкурентов у спринга не было, зачем было это придумывать - не понятно. В итоге якобы насколько простая штука как просто DI превратился во что-то что нужно изучать . И это настолько сложно дебажить.. Я вот уже 6ой год пишу проект который начали на SpringBoot'e, и всякий раз когда приходится что-то кастомизировать (выключить спринг бутовое и написать свое или внедриться в механизм) - приходится заниматься глубоким дебагом. Что-то, что раньше делалось за пару минут - на это иногда приходится тратить по несколько часов.. Попробуйте другие фреймворки. :-) Micronaut, Microprofile и т.д. Я попробовал... При всей монструозности Spring/SpringBoot он всё-таки гибче чем новые "простые"/"легкие" DI-фреймворки. mad_nazgulНафиг XML. Конфигурационные классы наше всио!!!! Меня ещё с версии Spring 3 раздражали XML-файлы, для создания контекста. А навигация по длинной портянке XML-файла это то ещё удвольствие. Плюс SPEL - это жесть. А в конфгиурационных классах можно логику создания бинов делать как хочешь. Плюс можно насоздавать этих конфигурационных файлов можно под любой чих. Включая/выключая их по своей извращенной логике.Я в целом не то чтоб ярый противник Java контекстов, но XML мне нравится больше: 1. Он намного короче как минимум из-за возможности autowiring'a. В Java бинах если есть конструктор, то тут уж компиляция потребует их вызвать явно. У меня счас в XML проекте почти все бины - однострочники. Properties конечно все равно приходится явно передавать в конструкторы, но таких классов не так уж много, да и все равно получается чаще всего короче чем в Java конфиге. 2. Они не перемешиваются с основным кодом. Если я хочу менять контекст, то я знаю что это XML и он хорошо выделяется на фоне классов. С Java конфигурацией меня раздражает то что сначала вбил пару буков для поиска, а потом еще в списке нужно искать контексты среди обычных Java классов. Да, если нужно выполнить прям код-код во время создания бина, то в Java конфиге это проще. Но это такая редкость.. А вот аргумента что XML можно менять без перекомпиляции я никогда не понимал.. Если мы собрали JAR, то мы не будем его распаковывать чтоб менять бины. После сборки мы уже ничего внутри менять не будем. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2021, 10:02 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev ..он хорошо выделяется на фоне классов. Очень точно подмечено. Мне вообще кажется что должна быть какая-то наука которая объясняет нам почему русскому разработчику удобнее читать BASIC чем 1С язык. Вот мне кажется что зрение на разных уровнях восприятия доносит мозгу контекст. Даже без чтения кода я уже глазами вижу где конфигурация и где логика. В случае с 1С это конечно вопрос спорный. Но вот я так себе это вижу. Мне даже жаль англичан. Их английские комментарии в коде мало чем отличимы от кода. Особенно для SQL, COBOL e.t.c. бизнес языков. Нужно обладать литературным талантом чтоб писать что-то яркое на фоне ключевых слов. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2021, 10:26 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev А вот аргумента что XML можно менять без перекомпиляции я никогда не понимал.. Если мы собрали JAR, то мы не будем его распаковывать чтоб менять бины. После сборки мы уже ничего внутри менять не будем. Если захочешь попробовать, то вот перезагрузка типа jsp Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2021, 12:11 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Мне кажется тут дело даже не в механике перезагрузки. Представте пятница. Вечер. (Вы в четверг выкатили релиз). И вы уже в баре. Берете в руки бокал пшеничного. И тут ... херак. На телефон падает какой-то prod issue. Вы читаете стектрейс. Фикс - фигня. Заменить точку на запятую. Но блин... открыть крышку ноутбука? Связаться с этим? Испортить вечер? Есть вариант позвонить дежурному индюку. И растолковать ему на ломаном саксонском - "Муниш... реплейс факен дот симбол виз факен комма... гуд лак энд хев е найс ивнинг..." Потом снова взять в руки бокал. Вечер подпорчен но еще не совсем. Жить можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2021, 12:26 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Я вот еще вспомнил одну киллер-фичу XML: ему плевать на модификаторы доступа. Я могу объявлять классы package private (а это частая ситуация с feature by package ) и описать все бины в одном или нескольких XML контекстах. В случае же Java конфига мне прийдется в каждый пакет добавлять по спринг контексту, что увеличит их кол-во во много-много раз. am_sasaэтап разработки, закидываем все в томкет директорию (без war), для перегрузки спринга делаем кнопочку (только для разраба) и не паримсяБыл кстати какой-то инструмент для hot redeploy'a который умел и спринг контекст рефрешить.. Забыл как он называется. Правда он денежку стоил. Это кстати сильно ли быстрей? Мне кажется что времени больше всего отнимает как раз инициализация спринг контекста. Хотя может рефреш как-то быстрей работает.. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2021, 14:13 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Технология OSGI позволяет редеплоить по горячему. Ну по крайней мере делать такой себе blue-green deploy. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2021, 14:16 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Не, этот без изменений кода умеет, вот он: JRebel . Я правда с ним игрался последний раз лет 10 назад. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2021, 14:26 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev Я в целом не то чтоб ярый противник Java контекстов, но XML мне нравится больше: 1. Он намного короче как минимум из-за возможности autowiring'a. В Java бинах если есть конструктор, то тут уж компиляция потребует их вызвать явно. У меня счас в XML проекте почти все бины - однострочники. Properties конечно все равно приходится явно передавать в конструкторы, но таких классов не так уж много, да и все равно получается чаще всего короче чем в Java конфиге. Мне удобнее когда что-то падает на этапе компиляции, а не при поднятии контекста, когда я забыл передать нужный класс/бин. Аннотациями @Component/@Service/@Autowired стараюсь не пользоваться Stanislav Bashkyrtsev 2. Они не перемешиваются с основным кодом. Если я хочу менять контекст, то я знаю что это XML и он хорошо выделяется на фоне классов. С Java конфигурацией меня раздражает то что сначала вбил пару буков для поиска, а потом еще в списке нужно искать контексты среди обычных Java классов. Если всё бины создавать через @Configure-классы, то вся "грязь" DI в них и остается. Stanislav Bashkyrtsev Да, если нужно выполнить прям код-код во время создания бина, то в Java конфиге это проще. Но это такая редкость.. Ну довольно частый case. Когда нужно создать бин с Map'ой бинов, по какому-то ключу. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2021, 17:20 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
mad_nazgul Stanislav Bashkyrtsev Я в целом не то чтоб ярый противник Java контекстов, но XML мне нравится больше: 1. Он намного короче как минимум из-за возможности autowiring'a. В Java бинах если есть конструктор, то тут уж компиляция потребует их вызвать явно. У меня счас в XML проекте почти все бины - однострочники. Properties конечно все равно приходится явно передавать в конструкторы, но таких классов не так уж много, да и все равно получается чаще всего короче чем в Java конфиге. Мне удобнее когда что-то падает на этапе компиляции, а не при поднятии контекста, когда я забыл передать нужный класс/бин. Аннотациями @Component/@Service/@Autowired стараюсь не пользоваться Stanislav Bashkyrtsev 2. Они не перемешиваются с основным кодом. Если я хочу менять контекст, то я знаю что это XML и он хорошо выделяется на фоне классов. С Java конфигурацией меня раздражает то что сначала вбил пару буков для поиска, а потом еще в списке нужно искать контексты среди обычных Java классов. Если всё бины создавать через @Configure-классы, то вся "грязь" DI в них и остается.Тут не понял о чем речь. Stanislav Bashkyrtsev Да, если нужно выполнить прям код-код во время создания бина, то в Java конфиге это проще. Но это такая редкость.. Ну довольно частый case. Когда нужно создать бин с Map'ой бинов, по какому-то ключу.Частый? Хм.. Мне такое 1-2 раза в жизни приходилось делать, но в XML это делается на ура https://stackoverflow.com/a/19437161/886697][1] . Во всяком случае пока ключ не динамический. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2021, 17:37 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Component scan кстати создает накладные расходы для server-less приложений. Мы его заменяли на явные указания зависимостей. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2021, 17:57 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev, @Configure классы позволяют спрятать все кишки Spring'а в них. Так чтобы коде бизнес-логики его не было. Как минимум в сервисном слое - точно. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2021, 08:14 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
mad_nazgul, а что, в XML это не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2021, 09:46 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev mad_nazgul, а что, в XML это не так? Тут дело в удобстве. Во первых создание контекста находиться в коде. Это дополнительная проверка на этапе компиляции. Меньше шанс, что что-то сломается в рантайме. Легче поиск по коду. Небольшие дополнительные плюшки создания своего starter. Не надо учить SPEL и разбираться в километровых портянках XML. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2021, 09:48 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
mad_nazgul, многие из этих пунктов мы уже обсудили выше. mad_nazgulВо первых создание контекста находиться в коде.В смысле описание бинов? Ну да, в этом и заключается Java конфигурация. Только это не плюс и не минус, а просто констатация факта. mad_nazgulЭто дополнительная проверка на этапе компиляции.Это да. И это как плюс (проверка), так и минус (потому как не позволяет autowiring). mad_nazgulМеньше шанс, что что-то сломается в рантайме.Да. mad_nazgulЛегче поиск по коду.Не замечал. IntelliJ находит везде одинаково, вот только с XML сразу видно что это про контекст, а не про обычный Java код. Да и поиск самих контекстов сложней если они в Java. Т.е. по обоим пунктам выигрывает XML. mad_nazgulНебольшие дополнительные плюшки создания своего starter.Этого не знаю. Но наверно большинству все равно по барабану. mad_nazgulНе надо учить SPEL и разбиратьсяНу если считать это проблемой.. Ну ладно. Хотя SPEL все равно остается для @Value. mad_nazgulв километровых портянках XML. Это миф. XML компактней Java конфигурации. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2021, 10:14 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev потому как не позволяет autowiring не уверен, что понял смысл написанного. что ты понимаешь, под autowiring и в каком плане java based конфиги его не позволяют? Stanislav Bashkyrtsev Хотя SPEL все равно остается для @Value. да, в минимальном объеме все равно полезно знать, еще как минимум в security полезно, если сложная логика ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2021, 15:01 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
chpasha Stanislav Bashkyrtsev потому как не позволяет autowiring не уверен, что понял смысл написанного. что ты понимаешь, под autowiring и в каком плане java based конфиги его не позволяют? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2021, 15:46 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev Ну если есть конструктор с параметрами, то в Java конфигурации не выйдет объявить бин и не описать параметры явно ты про такое что ли? Код: java 1. 2. 3. 4. 5. 6. 7.
тут конфигурация вовсе не нужна - заинжектится либо по типу, либо если несколько реализаций, по имени бина dep1, dep2. можно еще помочь с Qualifier явно, но не обязательно. Единственное что без явного @Autowired идея не опознает как точку инжекции (пока не умеет она такого к сожалению, потому желательно налепить формально ненужный @Autowired на параметры) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2021, 16:53 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
chpasha, нет, это ты вообще package scan показываешь. Он не имеет никакого отношения к обсуждению XML vs Java. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2021, 16:58 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
В смысле, ты говоришь "объявляем бин не описывая его конструктор" т.е. Код: xml 1.
тоже самое мы делаем без java based configuration просто объявив класс Component или Service. Или какой случай имеется в виду? Напиши пример ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2021, 17:04 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
P. S. или ты имеешь в виду случай, когда MyBean не наш и его нужно только через java based config создавать? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2021, 17:17 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
chpasha , ты смешиваешь разные концепции: 1. Есть Java vs XML config 2. И есть package scan, который можно запустить хоть из Java, хоть из XML конфига Мы обсуждаем вопрос о том что лучше если мы не используем package scan (сам я его в новых проектах вообще не использую, в старых - в перемешку). В случае XML конфигурации при описывании бина я не обязан описывать параметры конструктора: Код: xml 1. 2. 3. 4. 5.
В случае Java конфигурации будет что-то такое: Код: java 1. 2. 3. 4.
А если эти бины в разных классах, то: Код: java 1. 2. 3. 4.
Либо такое: Код: java 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2021, 17:24 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev Ну если считать это проблемой.. Ну ладно. Хотя SPEL все равно остается для @Value. Ну скажем у меня другой опыт. Когда поднятие контекста использовался SPEL с кучей условий в зависимости от. Как минимум для test/prod. И IDEA не могла контекст разобрать. Т.е. красный xml. :-) Stanislav Bashkyrtsev mad_nazgulв километровых портянках XML. Увы нет. Для SprinBoot если использовать аннотации и DI через конструктор. То можно обойтись двумя аннотациями @SpringBootApplication, @Component. Если же использовать Конфигурационными классами. То тремя аннотациями @SpringBootApplication, @Configuration, @Bean. Плюс функция для создания бина. Это если не использовать свои properties. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2021, 17:29 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
mad_nazgulДля SprinBoot если использовать аннотации и DI через конструктор. То можно обойтись двумя аннотациями @SpringBootApplication, @Component.Почитай что я выше ответил chpasha . Ты точно так же пытаешься приплести здесь Package Scan (@Component). Его использовать можно безотносительно того в каком виде у тебя явная конфигурация - в XML или в Java. mad_nazgulТо тремя аннотациями @SpringBootApplication, @Configuration, @Bean.И вот описание @Bean зачастую оказывается более громоздким чем <bean>. mad_nazgulКогда поднятие контекста использовался SPEL с кучей условий в зависимости от. Как минимум для test/prod.Интересно было бы глянуть. Мне кажется ты как-то неправильно использовал контексты/конфиги. У нас не может быть ничего в объявлении бинов в зависимости от test/prod. Это просто конфигурация окружения - т.е. читаем свойства из конфига и передаем значения как есть в наши бины. А если ты объявлял разные бины в зависимости от test/prod (что само по себе плохо, но иногда не избежать), то: 1. Это решается профилями, и профили неправильно называть test/prod. Более корректно их называть по названиям включаемых/выключаемых фич, типа oauth2, saml; activemq, ibmmq. И уже конфиг окружения определяет набор включаемых профилей. 2. И с профилями прийдется опять же возиться хоть в XML, хоть в Java. 3. До 3.0.0 не было профилей, но в XML эта проблема все равно решалась просто: выносим отличающиеся бины в отдельный контекст и делаем импорт с переменной: <import resource="${mq}-context.xml" /> . Я вообще с трудом могу вспомнить те разы когда SPEL приходилось применять кроме как передать свойство или это свойство домножить на что-то ( #{some_prop_millisec * 1000} ). PS: интересно что многие туториалы по SpringBoot как раз пропагандируют неправильное использование профилей. Во-первых, они прям в репозиторий с приложением записывают эти конфиги, во-вторых используют профили просто как набор свойств. Т.е. вообще не то для чего их придумывали.. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2021, 17:46 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev Почитай что я выше ответил chpasha . Ты точно так же пытаешься приплести здесь Package Scan (@Component) Код: java 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2021, 22:21 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
chpasha , я не понимаю к чему ты клонишь. Ты пометил Configuration класс с помощью @Component, это какую-то проблему решает? А тут ты явно описывал объявление @Component & @Service, т.е. это однозначно про Package Scan: chpasha В смысле, ты говоришь "объявляем бин не описывая его конструктор" т.е. Код: xml 1.
тоже самое мы делаем без java based configuration просто объявив класс Component или Service. Или какой случай имеется в виду? Напиши пример ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2021, 08:28 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev это какую-то проблему решает? кстати решало - из-за cglib @Configuration не работал в подписанных джарниках, но мы конечно не об этом. Stanislav Bashkyrtsev Опиши полноценно какую мысль ты пытаешься донести. что преимущество, описанное тобою имеет смысл только для кода, который мы не контролируем, а в остальных случаях упомянутый тобою вариант без конструктора является аналогом объявления @Component/@Service с @Autowired конструктором/сеттерами или final полями ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2021, 09:44 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
chpasha Stanislav Bashkyrtsev Опиши полноценно какую мысль ты пытаешься донести. что преимущество, описанное тобою имеет смысл только для кода, который мы не контролируем, а в остальных случаях упомянутый тобою вариант без конструктора является аналогом объявления @Component/@Service с @Autowired конструктором/сеттерами или final полями Вообще удивительно насколько этот, казалось бы, простой момент всех путает. Я когда провожу курсы вижу, что очень многие (независимо 1 год поработали или 10) точно так же путаются и долгое время не могут поверить что Package Scan не имеет отношение к Java @Configuration. Эт прям какая-то установка, которую не сломать за один раз. Видимо это потому что аннотации @Component мы ставим в Java коде. chpashaчто преимущество, описанное тобою имеет смысл только для кода, который мы не контролируемЯ в последних своих проектах не используют Package Scan вообще - ни для своего кода, ни для внешнего. Не вижу проблем объявить бин явно. Советую и другим использовать меньше магии и больше явного кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2021, 10:01 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev о package scan я кажется понял, что ты на самом деле хочешь сказать ;) есть xml-based configuration, annotation-based configuration и java-based configuration (и миксы всего со всем) - формально @Component/@Service/@Autowired относится ко второму, а не к третьему виду конфигурации (хотя технически это уже не так, поскольку и Component и Service это тоже конфигурации, а Configuration это Component) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2021, 10:26 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev Я в последних своих проектах не используют Package Scan вообще я в данный момент как раз размышляю о преимуществах и недостатках смешивания данных подходов Stanislav Bashkyrtsev Не вижу проблем объявить бин явно лишняя работа получается, как getter/setter писать, только хуже, так как те хоть автоматом можно сгенерить. но зато "конфигурация" получается только в строго отведенных местах, а не разбросана по всему коду. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2021, 11:01 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
chpasha есть xml-based configuration, annotation-based configuration и java-based configuration (и миксы всего со всем) - ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2021, 11:17 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Конфигурации это еще пол-беды. Скоро будет так. Ты набираешь код. Устал. Давишь ALT+Space или еще какую-то волшебную комбинацию. Твой исходник летит в какое-то ИИ облако. Анализируется. Потом тебе выкидывают 3-5 вариантов как завершить исходник. Постепенно у тебя мозг разжижается. Думать не надо. Остается лениво перебирать варианты. ИИ, как сомелье (вспомнил Пелевина), просто предлагает тебе коробочные решения. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2021, 14:47 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
mayton Постепенно у тебя мозг разжижается аналогия понятна, но от написания конструкторов и ручного освобождения памяти у тебя прокачивается не мозг, а пальцы на руках. Кому хочется потрахаться, тот может ваять окошки на winapi или mfc, но если окошки - это не самоцель, то берем более высокоуровневый инструмент и не тратим время. Т.е. те самые пресловутые "шашечки" vs "ехать" ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2021, 15:09 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Да. Или вопрос из серии где заканчивается Python и начинается С++? Никто не знает. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2021, 15:12 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Честно скажу, 5 страниц ниасилил. Возможно, автору надо поставить плагин lombok в IntelliJ IDEA. При его отсутствии все сеттеры будут отображаться как синтаксические ошибки, даже если код нормально собирается с помощью mvn. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2021, 16:48 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
chpasha mayton Постепенно у тебя мозг разжижается аналогия понятна, но от написания конструкторов и ручного освобождения памяти у тебя прокачивается не мозг, а пальцы на руках. Кому хочется потрахаться, тот может ваять окошки на winapi или mfc, но если окошки - это не самоцель, то берем более высокоуровневый инструмент и не тратим время. Т.е. те самые пресловутые "шашечки" vs "ехать" Ну MFC это и есть "более высокоуровневый инструмент" Пытался им пользоваться... не понравилось. Претензии теже, фиг поймешь, где что надо, в какой таблице какое событие описывать, что кодить во View, что в Controler'е и что в Document'е. Для простых задач, создать окошко, нарисовать две-три кнопки, подцепить окно и диалоги - вот реально WinApi и проще и короче. Самое главное, что код ПОНЯТНЫЙ, хорошо документированный (документация на WinApi) и гарантированна надежность работы. Проблема в том, что пытаясь упростить WinApi, для понимания которой достаточно 2-3 тоненьких книжек (в 1990-х была хорошая серия от компании Диалог) и доступ к документации reference от MS, создают библиотеки, что бы разобраться в которых и что-то начать делать, нужно прочитать до 5-7 тысяч страниц. Например высокоуровневый фреймворк Oracle ADF. Реально, читал все книжки, 5-7 тысяч страниц. На ряд интересующих в тот момент меня вопросов - ответов даже не нашел (нужно было сделать взаимодействие ADF и кастомного JavaScript с MapView ). Сделать то сделал, по примерам: поставьте такой триггер, вызовете такую функцию, сообщение передастся. Для видимости работы - достаточно. Но например описание механики работы рендеренга страниц, описание работы бизнес компонент для работы с базой - в документации нет, места в 7 тыс. страниц не хватило. Сложность программирования "на WinApi" подменили кажущейся простотой библиотек / FrameWork'ов, которые, на самом деле, имеют сложность в разы, а то и на порядки большую, чем низкоуровневое средство, которое они подменяют. И значительно хуже документированные, а внутренности работы часто вообще не документированы. Самое большая засада, что в библиотеках еще и свои парадигмы придумывают. Что добавляет и глюков, и сложности в освоении и миграции на новые хайповые технологии. Конструктор - сложно... это же память корректно в диструкторе очищать надо. Сделаем GC... сделали.. зато похерили диструкторы. В результате вместо относительно понятного memory leak (который программист ожидает ) получили мало понятный resource leak. Т.к. начинающий программист в лучшем случае считает, что система все сделает за него... а вот фиг... А в худшем случае , начинает пихать код в finallize, даже не понимаю, что это НЕ диструктор и код очистки ресурсов туда пихать не надо и даже нельзя . А потом ловим глюки. В JVM добавляем еще более мало понятные ключи настройки (глубина очереди вызовов finallyze в GC) и прочее и прочее. В результате, в реальном проекте работающем с RMI (remote method invocation), отхватываем тот же самый memory leak, которого в Java не бывает ))), и в течение нескольких месяцев пытаемся понять: толи программисты виноваты, толи настройки GC не правильные, толи оно так и должно работать. Т.к. в дампе памяти, висят гигабайты прокси от RMI, которые вроде как программисты и не создавали (оно само), должны непонятно как очищаться (дабы ссылки на данные объекты не локальные, а через RMI) и что уж совсем не понятно - что же с этим делать. Дока от GC приводит пару штук ключей, но как работают, как это мониторить, общедоступная дока нифига не описывает. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2021, 17:03 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
mayton Конфигурации это еще пол-беды. Скоро будет так. Ты набираешь код. Устал. Давишь ALT+Space или еще какую-то волшебную комбинацию. Твой исходник летит в какое-то ИИ облако. Анализируется. Потом тебе выкидывают 3-5 вариантов как завершить исходник. Постепенно у тебя мозг разжижается. Думать не надо. Остается лениво перебирать варианты. ИИ, как сомелье (вспомнил Пелевина), просто предлагает тебе коробочные решения. Что значит "скоро", оно уже есть. Codota/Tabnine GitHub Copilot Правда, как в том анекдоте, такая фигня получается... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2021, 17:13 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Да я видел демо с Co-Pilot. Вообще не впечатлило. Я задумался о другом. В принципе ИИ в том виде как мы его ожидаем может оказаться мертворожденным ребенком. Или гоммункулом. Но сама идея очень внимательного и вдумчивого описания Software Requirements или DSL прямо в коде - это хорошая идея над которой надо подумать. Может ИИ и не родится. Но родится новая дисциплина - техно-писательство где нужно будет просто формально описать что ты хочешь получить на выходе. Еще одна важная опция которую можно возложить на ИИ - это поиск ошибок, vulnerabilities, статический анализ кода. Вот уж где человек может ошибаться - так это как раз там. Творчества мало. В основном rules. И много- много inference. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2021, 17:20 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
mayton, есть с этим очевидная проблема: если это формальное описание должно быть написано на натуральном языке, то придётся бороться со всеми его недостатками, типа нечёткости, противоречивости, неоднозначности. Если же пытаться формализовать язык спецификации, то так, собственно и появились языки логического программирования, типа Prolog, от которого произошёл и Erlang, например. С другой стороны есть BDD со всякими там Cucumber, которые подходят к этой проблеме с другого конца. Но, в итоге... Ну и, полагаю, все тут уже созрели для срача imperative vs declarative? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2021, 18:00 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
chpasha, Конструктор не связан с ручным освобождением памяти. Память освобождается везде автоматом после выхода из области видимости. А вот конструктор надо писать везде. Параметры объекту нужны хоть в XML инжекции, хоть в java конфиге. Разница не так велика как кажется. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2021, 20:00 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev В результате, в реальном проекте работающем с RMI смотрю наболело ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2021, 22:46 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevНу MFC это и есть "более высокоуровневый инструмент" Пытался им пользоваться... не понравилось. Претензии теже, фиг поймешь, где что надо, в какой таблице какое событие описывать, что кодить во View, что в Controler'е и что в Document'е. Для простых задач, .... Самое главное, что код ПОНЯТНЫЙ, хорошо документированный (документация на WinApi) и гарантированна надежность работы. Проблема в том, что пытаясь упростить WinApi, ...., что бы разобраться в которых и что-то начать делать, нужно прочитать до 5-7 тысяч страниц. Например высокоуровневый фреймворк Oracle ADF. Реально, читал все книжки, 5-7 тысяч страниц. ..., описание работы бизнес компонент для работы с базой - в документации нет, места в 7 тыс. страниц не хватило. Сложность программирования "на WinApi" подменили кажущейся простотой библиотек / FrameWork'ов, ... часто вообще не документированы. Самое большая засада, что .... Конструктор - сложно... это же память корректно в диструкторе очищать надо. Сделаем GC... сделали.. зато похерили диструкторы. В результате вместо относительно понятного memory leak (который программист ожидает) получили мало понятный resource leak. Т.к. начинающий программист в лучшем случае считает, что ... и код очистки ресурсов туда пихать не надо и даже нельзя. А потом ловим глюки. ... и прочее и прочее. В результате, общедоступная дока нифига не описывает. Лень, в Высшей школе учился, был такой предмет как марксистко-ленинская философия ? Нет - Переходи в манагеры. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2021, 10:56 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
DocAl, я думаю что мы сейчас ожидаем рождения нового языка. Языка описания требований. Настолько формального что он сможет претендовать на DSL. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2021, 15:22 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
mayton DocAl, я думаю что мы сейчас ожидаем рождения нового языка. Языка описания требований. Настолько формального что он сможет претендовать на DSL. Уже было. Рождалось. Много раз. Даже есть более-менее живое. Но продолжают "рождаться" и продолжаем "ожидать" ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2021, 15:28 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Ну... чтож. Запасёмся оптимизмом. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2021, 15:34 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
mayton Языка описания требований. Ладно с языком. Требования даже на нормальном русском/английском и то сложно описывать. Знаю: Oracle AIM RUP Если говорить об описании UML Но не взлетает. Если взлетает, то летит низенко-низенко хотя и переводит тонны денег но вот сейчас появились анотации... и заживем! ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2021, 15:36 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Леонид. Нет. Ну это вообще не про это. Между UML, RUP и кодом существует пропасть. И вот я говорю о том языке который эту пропасть заполнит. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2021, 15:46 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
mayton, Уже есть Lua предназначен для пользователей, не являющихся профессиональными программистами,... https://ru.m.wikipedia.org/wiki/Lua ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2021, 15:56 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
mayton Леонид. Нет. Ну это вообще не про это. Между UML, RUP и кодом существует пропасть. И вот я говорю о том языке который эту пропасть заполнит. Может пропасть и существует. Но как много людей в этой конференции реально этим пользовались? Какие успехи? Бог с ней с пропастью. Пусть на русском бизнес-требования в структурированном виде опишут. Но нет этого Ну и тот же UML создавался/рекламировался как средство кодогенерации. Я не пользовался, не знаю. Но об эффективности результата подозреваю. Сталкивался со множеством графорисовалок программ/бизнес процессов с помощью мышки: Oracle BPM Oracle Workflow Oracle Scripting Oracle Data Integrator (ETL) Результаты разные. От нарисовать - повесить на стенку. Нарисовать - обработать напильником. Вплоть до нарисовать и оно даже работает в продакшене до сих пор. Но почти всегда, значительно проще было бы ту же работу сделать "традиционным образом". И точно всегда, без написания реального кода с помощью клавиатуры - все равно не обойтись. AFAIK ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2021, 15:59 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Я думаю что эта задача является краш-тестом для настоящего искусственного интеллекта. Не создание дип-фейков. Не игра в шахматы и Го. Не узнавание фотографий товаров в китайских сайтах. А именно - заполнение "пустоты между техническим заданием и исходным кодом". ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2021, 16:59 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
mayton, После ТЗ идет техпроект). ИИ еще до лабораторных не доросло. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2021, 18:16 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Да ради бога. Мы можем нарисовать 10 и 100 слоёв между ТЗ и кодом. Но это все равно нас не приближает к решению главной задачи. Она стоит как каменная стена. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2021, 18:48 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
mayton, Угу. Программирование это искусство. Особенно если for не расписано. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2021, 19:25 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev Если взлетает, то летит низенко-низенко ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2021, 00:42 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2021, 12:22 |
|
Оптимальное написание кода. Как сделать последовательное присвоение
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev Сталкивался со множеством графорисовалок программ/бизнес процессов с помощью мышки: Oracle BPM Oracle Workflow Oracle Scripting Oracle Data Integrator (ETL) Результаты разные. От нарисовать - повесить на стенку. Нарисовать - обработать напильником. Вплоть до нарисовать и оно даже работает в продакшене до сих пор. знакомая боль - последний год мучился с одной похожей фигней. Если очень постараться, то она даже иногда работает. В итоге задолбался, поставил ультиматум - либо делаем нормально, либо ищите другого дурака ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2021, 14:48 |
|
|
start [/forum/topic.php?all=1&fid=59&tid=2120352]: |
0ms |
get settings: |
16ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
37ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
2177ms |
get tp. blocked users: |
2ms |
others: | 376ms |
total: | 2621ms |
0 / 0 |