|
Код в конструкторе
|
|||
---|---|---|---|
#18+
Как правильно реализовать класс, который должен выполнить определенные предварительные действия? Абстрактный пример: Допустим, нужно создать класс, которые будет получать через параметр конструктора имя файла. При его создании парсить этот файл и сохранять строки в мапу. После чего пользователь, методом getLine() сможет дергать эти строки. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
1). Писать код в конструкторе - это же плохо? 2). Т.е. что делать если нужно провести определенную инициализацию класса (но не простое присвоение значений полям, а определенная логика)? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2020, 14:23 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
faustgreen, Общие правила. - инициализировать лучше в конструкторе если это не обращение к внешним ресурсам, внешним ИС, либам и не будет райзе 99,9% ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2020, 14:31 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
faustgreen, Так как файл - внешний ресурс, то нужно сделать доп метод напр. open() или init() ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2020, 14:34 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
faustgreen Как правильно реализовать класс, который должен выполнить определенные предварительные действия? 1). Писать код в конструкторе - это же плохо? 2). Т.е. что делать если нужно провести определенную инициализацию класса (но не простое присвоение значений полям, а определенная логика)? 1) Ну почему плохо?! Кто запрещает? Ну если не хотите писать тело в конструкторе, напишите в отдельной функции. Которую потом вызовите в конструкторе. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2020, 14:35 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, т.е. будет выглядеть так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
? Если это не является bad practise, то ок. Вообщем то это и был основной вопрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2020, 14:44 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
faustgreen, Не так. Нельзя открывать или обращатся в конструкторе ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2020, 14:52 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Не так. Нельзя открывать или обращатся в конструкторе mad_nazgul 1) Ну почему плохо?! Кто запрещает? сами авторы Java о таком запрещении почему-то не знают. https://docs.oracle.com/javase/7/docs/api/java/io/FileInputStream.html#FileInputStream(java.io.File) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2020, 15:21 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
faustgreen Если это не является bad practise, то ок. Вообщем то это и был основной вопрос. beauty is in the eye of the beholder ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2020, 15:22 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
Правильнее всего сделать статический метод инициализатор, который возвращает option, ну в джаве в принципе можно и исключение кинуть. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2020, 19:58 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, так, то - боги ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2020, 20:06 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
забыл ник, Щаз мы его фабрикой классов или паттерном Строитель добьем))) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2020, 20:42 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
faustgreen 2). Т.е. что делать если нужно провести определенную инициализацию класса (но не простое присвоение значений полям, а определенная логика)? Обычно для этой цели создают метод init с кодом возврата или ексепшином в зависимости от того чего там написано. Это сложившиеся практика еще с прошлого века. Вот вполне обоснованные дискуссии по этому поводу https://softwareengineering.stackexchange.com/questions/334970/are-init-methods-a-code-smell https://gamedev.stackexchange.com/questions/48446/why-should-i-use-separate-initialization-and-clean-up-methods-instead-of-putting Основное правило это целесобразность таокого подхода в каждом конкретном случае. В общем случае это просто подозрительный код или неудачный дизайн. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2020, 21:06 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
faustgreen, да на самом деле та же проблема, что и в плюсах, и в шарпе - отсутствие поддержки виртуальных методов в конструкторе как говорится: проблема в языке by design - приходится вот так костылять с помощью init-методов натягивают целесообразность такого подхода возможностью оптимизации на уровне компиляции ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2020, 23:43 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
faustgreen Абстрактный пример: Допустим, нужно создать класс, которые будет получать через параметр конструктора имя файла. При его создании парсить этот файл и сохранять строки в мапу. После чего пользователь, методом getLine() сможет дергать эти строки. Можно при вызове getLine() проверять есть ли экземпляр мапы и если нет, считывать и парсить файл (вызов соответствующего метода). Можно написать класс Reader с парсингом файла в конструкторе и сделать к нему виртуальную проксю LazyReader, которая при инициализации записывает имя файла в приватную переменную, также имеет приватное поле Reader, при вызове getLine() проверяет есть ли экземпляр Reader если нет то создает его и вызывает getLine() у экземпляра Reader. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2020, 00:50 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
graycode, авторМожно написать класс Reader с парсингом файла в конструкторе и сделать к нему виртуальную проксю LazyReader, которая при инициализации записывает имя файла в приватную переменную, также имеет приватное поле Reader, при вызове getLine() проверяет есть ли экземпляр Reader если нет то создает его и вызывает getLine() у экземпляра Reader. Круто))) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2020, 08:23 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
Выскажу свою точку зрения. Конечно код в конструкторе писать можно, но есть одно большое НО. Конструктор это процедура создания объекта и получается, что в случае ошибок выполнения кода сам объект не будет создан. Мне думается правильно вначале создать объект, пусть практически пустой, а потом уже выполнять некоторые действия с ним. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2020, 08:38 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
SQL2008 Выскажу свою точку зрения. Конечно код в конструкторе писать можно, но есть одно большое НО. Конструктор это процедура создания объекта и получается, что в случае ошибок выполнения кода сам объект не будет создан. Мне думается правильно вначале создать объект, пусть практически пустой, а потом уже выполнять некоторые действия с ним. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2020, 08:59 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
kealon(Ruslan) SQL2008 Выскажу свою точку зрения. Конечно код в конструкторе писать можно, но есть одно большое НО. Конструктор это процедура создания объекта и получается, что в случае ошибок выполнения кода сам объект не будет создан. Мне думается правильно вначале создать объект, пусть практически пустой, а потом уже выполнять некоторые действия с ним. Fast Fail однако! <:o) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2020, 09:11 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
kealon(Ruslan), Объекта и не будет. Будет инициализация переменной в памяти. А потом можно рожать полноценный 1000 способов. У меня в коде противопоказания только на исключение и зависание. Ну и раздельно удобно переинициализацию делать ob.init(file1) ob.init(file2) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2020, 09:45 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
кажется тут речь о том что вроде как, в спрингбинах и не только спринг в конструктор код не засунуть кроме this.whateverField=whateverField и юзать можно-нужно типа постконструкт или как он там. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2020, 09:50 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
PetroNotC Sharp kealon(Ruslan), Объекта и не будет. Будет инициализация переменной в памяти. А потом можно рожать полноценный 1000 способов. У меня в коде противопоказания только на исключение и зависание. Ну и раздельно удобно переинициализацию делать ob.init(file1) ob.init(file2) да и если "потом рожать" чем это отличается от "создать"? я понимаю что при таком подходе, например в плюсах, можно на этапе копиляции создать объект в java то какой профит? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2020, 10:40 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
kealon(Ruslan), Дак и разговор про универсальный совет под все ЯП. Универсальный - объект без райзе и гарантированно создаваемый. Это назначение конструктора. В java тоже есть заморочки чтобы следовать этому правилу. Не прогер тут создает объект.)))) Тут new давно не пишут )))) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2020, 10:56 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
andreykaT кажется тут речь о том что вроде как, в спрингбинах и не только спринг в конструктор код не засунуть кроме this.whateverField=whateverField и юзать можно-нужно типа постконструкт или как он там. PetroNotC Sharp ... Ну и раздельно удобно переинициализацию делать ob.init(file1) ob.init(file2) что мешает сделать и так, и так? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2020, 10:57 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
kealon(Ruslan) что мешает сделать и так, и так? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2020, 10:58 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
PetroNotC Sharp kealon(Ruslan) что мешает сделать и так, и так? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2020, 10:59 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
kealon(Ruslan), Чтобы новичОк морщил лоб что лучше при подсказке в IDE? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2020, 11:04 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
Для корпоратива, код должен быть простой,.... и понятный, читабельный и короткий. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2020, 11:13 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
1) Создание объекта должно быть атомарным и созданный объект должен быть гарантированно готовым к использованию, поэтому забудьте про ваши пахнущие нафталином init, open и т.д, потому что их легко забыть вызвать. Поэтому единственно правильный метод создания такого объекта - внешняя функция, которая либо вернёт готовый объект либо вернёт ошибку. 2) есть 4 распространенных стратегии как возвращать ошибку. А) код возврата - ну это давно дискредитировавшая себя идея, так что идём дальше 2) uncheked exception - код становится проще, но оно может проползти через много слоев кода и вылезти там где не ждёшь. Ацтой 3) unchecked exception. Уже лучше, нельзя не обработать, но добавляет лишний код, разрабы склонны просто глушить их ну и вообще это такой неочевидный goto 4) вернуть Either<Reader, Error> который указывает что результатом функции может быть либо объект либо ошибка и прогеру надо обработать оба кейса, и при этом не ломается последовательный флоу. К сожалению в java нету хорошего either, поэтому варианты с optional и кидагием uncheked для меня выглядят наилучшими, кому как нравится Поэтому, повторяю, проблема решается через Статик метод, который называется smart constructor и он либо кидает анчекед либо опшилнал ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2020, 11:36 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
забыл ник Поэтому единственно правильный метод ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2020, 11:52 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
PetroNotC Sharp kealon(Ruslan), Чтобы новичОк морщил лоб что лучше при подсказке в IDE? очевидность в таком случае больше страдает, как бы всё таки странно "делать два вызова вместо одного" PetroNotC Sharp kealon(Ruslan), Это в плюсах 30 вариантов конструкторов)))) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2020, 13:11 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
kealon(Ruslan), Очевидность это в конструкторе сделал инициализацию 20 обычных полей типа class A { int x = 12*30 .... и потом вызвал Бизнес логику отдельным методом. initFromStream... initFromHttp ... А то как то узко получается делать 5 initXXX и 5 конструкторов ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2020, 13:36 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, то что в Java это неудобно делать - это конечно фактор от которого приходится прыгать ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2020, 16:34 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
kealon(Ruslan), Мое имхо что это неудобно также в дельфи, шарпе и плюсах ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2020, 16:57 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, в дельфи, с конструктором, это я точно могу сказать, особо проблем нет - фактически там вызов конструктора это целый комбайн, который реализует "фабрику классов". Там другие проблемы: стандартные библиотеки и интерфейсы между креслом и компьютером. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2020, 20:04 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
kealon(Ruslan), Ну дак я делал там 3 конструктора объекта. И все работало. ob.Create(путьКсубд) А когда шеф сказал что нужно в меню Отсоединится от Бд и присоединится к бд без перезапуска (не убивая объект) то переделал с конструктора на ob.init(путьКсубд) Просто это удобнее чем убивать))) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2020, 20:22 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
Вообще непонятна проблема топика. Посмотрите как OpenJDK реализует классы java.io.* Есть там логика в конструкторах и исключения они бросают. Может в топике надо обсудить шаблоны типа фабрика или фабричный метод? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2020, 00:09 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
mayton, Пошучу как kealon .. Так то - боги)))) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2020, 07:46 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
PetroNotC Sharp kealon(Ruslan), Ну дак я делал там 3 конструктора объекта. И все работало. ob.Create(путьКсубд) А когда шеф сказал что нужно в меню Отсоединится от Бд и присоединится к бд без перезапуска (не убивая объект) то переделал с конструктора на ob.init(путьКсубд) Просто это удобнее чем убивать))) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2020, 08:31 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
mayton Может в топике надо обсудить шаблоны типа фабрика или фабричный метод? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2020, 08:37 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
kealon(Ruslan), Можно конечно. Но я привык так, если на предметах в комнате скапливается пыль, то предмет не нужен. Ну ты понял. Если никто не использует тот конструктор (я же выше показал что неудобно) то это лишний код. Я против универсальности и универсального класса которого имеем во всех позициях)) Ну или второй пример. Когда файл выделяешь и нажимаешь копировать или переместить ты звдумываешься? Вот и я нажал в IDE F6 а не F5 )) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2020, 09:29 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
Бывают более раздражающие кейсы. Например вам надо быстро протестировать бизнес-логику в юнит-тестах но .. бизнес-объект вы просто так не можете создать. У него нет дефолтного конструктора. Есть конструктор с параметром который тоже хрен создашь по той-же причине. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2020, 10:11 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
mayton Бывают более раздражающие кейсы. Например вам надо быстро протестировать бизнес-логику в юнит-тестах но .. бизнес-объект вы просто так не можете создать. У него нет дефолтного конструктора. Есть конструктор с параметром который тоже хрен создашь по той-же причине. Если речь о Легаси - да. Новый код такого качества не должен пройти дальше пулл реквеста ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2020, 10:50 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
забыл ник mayton Бывают более раздражающие кейсы. Например вам надо быстро протестировать бизнес-логику в юнит-тестах но .. бизнес-объект вы просто так не можете создать. У него нет дефолтного конструктора. Есть конструктор с параметром который тоже хрен создашь по той-же причине. Если речь о Легаси - да. Новый код такого качества не должен пройти дальше пулл реквеста Почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2020, 11:15 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
mayton, Да. Согласен. И даже уже обсуждали это в форуме. Это уже особенности мокания, бинов, внедрения классов и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2020, 11:20 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
Если посмотреть на Apache Lucene - таки да. Там много объектов движка создаются не через конструкторы а через методы фабрик. Это для ядро. Это pure-java и никто не будет их заворачивать в бины или ORM сущности. Тоесть как-бы идет условное разделение на обще-системные и прикладные (бизнесовые) библиотеки. И когда я ворчал по поводу тестированя - я какраз имел в виду бизнес-код в котором программист просто шутки ради или начитавшись умной литературы просто забрал у меня обычный конструктор. И теперь надо задаскивать Mockito. Библиотеку которую я считаю совершенно ненужным шлаком да и нарушающей законы инкапсуляции. Вобщем в борьбе брони и снаряда никто не побеждает но мы увеличиваем эстимации решаемых тасок. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2020, 11:25 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
mayton, Опять согласен. Так как ты еще помнишь обычное программирование java. Десктоп. Потом java в веб ушло. Тут непустой конструктор нафиг не нужно. Тут и ООП не нужен)) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2020, 11:28 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
Я в последнее время стал писать каменты в пустых конструкторах. Код: java 1. 2. 3. 4. 5. 6. 7.
Это чтоб шаловливый другой кодер не переделал дефолтный в конструктор с параметром. Пускай новый создаст. Смысл по сути такой-же как и в каментах в секции default: Чтоб акцентировать что мы ситуацию контролируем а не просто что-то механически вписали. P.S. Java иногда умеет замылить глаза бойлерплейтом. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2020, 15:52 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
PetroNotC Sharp kealon(Ruslan), Можно конечно. Но я привык так, если на предметах в комнате скапливается пыль, то предмет не нужен. Ну ты понял. Если никто не использует тот конструктор (я же выше показал что неудобно) то это лишний код. Я против универсальности и универсального класса которого имеем во всех позициях)) Ну или второй пример. Когда файл выделяешь и нажимаешь копировать или переместить ты звдумываешься? Вот и я нажал в IDE F6 а не F5 )) авторА когда шеф сказал что нужно в меню Отсоединится от Бд и присоединится к бд без перезапуска (не убивая объект) то переделал с конструктора на ob.init(путьКсубд) Просто это удобнее чем убивать)))на основании какой метрики шеф сделал этот вывод? почему конкретный случай стал квантором всеобщности? с любой стороны как ни погляди, но "два вызова вместо одного" - это явно лишний код :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2020, 21:01 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
kealon(Ruslan), Не понял тебя. Есть mainForm при рождении делался коннект из настроек. При смене бд просто перегружаем приложение. Это юз кейс самый простейший. Вот заказчик не захотел перегружать. Тебе это не понравилось? Твои проблемы. Тут прогеры а не заказчики. У меня половина таких было. Хотят плюг анд плей)) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2020, 22:09 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
PetroNotC Sharp kealon(Ruslan), Не понял тебя. Есть mainForm при рождении делался коннект из настроек. При смене бд просто перегружаем приложение. Это юз кейс самый простейший. Вот заказчик не захотел перегружать. Тебе это не понравилось? Твои проблемы. Тут прогеры а не заказчики. У меня половина таких было. Хотят плюг анд плей)) пересоздать соединение же нужно, а не форму так ведь? главное в этой фразе пересоздать, т.е. камень предкновения в данном случае соединение, а не форма т.е. логически, соединение - не часть формы, а внешний объект, который должна быть возможность заменить ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 00:07 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
kealon(Ruslan), Ну допустим, что что меняет? Объект рожается в конструкторе формы и Всегда создан. То есть нигде в 6000 строк кода нет проверки на null. Теперь представь что его на кнопку надо в нуль на время сделать. Что будет? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 07:38 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Теперь представь что его на кнопку надо в нуль на время сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 07:59 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
Basil A. Sidorov, Предложи решение по рефакторингу в двух словах. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 08:01 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
Процитирую себя, любимого: "переделать кнопку". ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 08:19 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
Basil A. Sidorov Процитирую себя, любимого: "переделать кнопку". А мы тут о своём, программистком. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 08:28 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Basil A. Sidorov Процитирую себя, любимого: "переделать кнопку". А мы тут о своём, программистком. и человек так устроен, что подсознательно всегда ищет оправдание плохому поступку везде, где только можно, но не в своих действиях ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 08:36 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
kealon(Ruslan), В каких своих действиях если ты не показал образец Твоих действий. А зрители сами судят какой метод рефакторинга лучше. Дак какие твой дейчтвия на это ТЗ? Нам очень интересно. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 08:51 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
kealon(Ruslan), Как заменить в поле объект по композиции? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 08:56 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
PetroNotC Sharp А мы тут о своём, программистком Нет, веке в шестнадцатом - было бы круто, не спорю. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 09:40 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
Basil A. Sidorov, Не интересно. Далеко от темы. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 10:33 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
Мы плавно переходим к тому, что на ИТ специальностях так же нужно ввести обязательные занятия по теологии? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 10:41 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
Схоластика слабо связана с теологией. В средние века образованными, в основном, были монахи (не все монахи, разумеется) и упражнения в схоластике были, ясен пень, теологическими. В сути же своей схоластика - рассуждения на произвольные темы. На темы, не имеющие разумного смысла - в том числе. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 12:01 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
Есть мысль что рефакторинг - это человеческая категория. Ну то бишь, процессору пофиг, рефакторен код или нет. Работающему приложению и ОС - тоже пофиг. И судить о пользе и вреде рефакторинга могут только одухотворённые и чувственные человеки. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 12:06 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
исходя из "личностного опыта веры" рефакторинга ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 12:24 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
mayton, Ну можно назвать Это по другому))). "Приборка кода" подходит?)))) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 12:45 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
Эстетика кода. Украшение. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 13:31 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
mayton Эстетика кода. Украшение. Рефакторинг вызвал новый функционал по ЧТЗ - Горячий переконнект. Выбросил конструктор и поставил метод init ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 14:04 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
Это было вообще похоже на task или user story. И будет ли там рефакторинг или нет это уже второй вопрос. Я-бы сказал так что рефакторинг не должен менять major flow. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 15:07 |
|
Код в конструкторе
|
|||
---|---|---|---|
#18+
mayton Это было вообще похоже на task или user story. И будет ли там рефакторинг или нет это уже второй вопрос. Я-бы сказал так что рефакторинг не должен менять major flow. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 15:27 |
|
|
start [/forum/topic.php?all=1&fid=59&tid=2120650]: |
0ms |
get settings: |
28ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
53ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
1200ms |
get tp. blocked users: |
1ms |
others: | 298ms |
total: | 1616ms |
0 / 0 |