Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

.NET und C# ohne Web?

4812   3 4 5 6 7 8 9 10 11 12 13 все
Срыв покровов коренной житель20.05.21 20:18
NEW 20.05.21 20:18 
в ответ koder 20.05.21 09:51
В смысле в яве нельзя создать класс только с геттерами? смущ

в Яве придётся создавать на каждый чих класс с геттерами

В то время как в с# можно обойтись кортежем

Программист коренной житель20.05.21 20:19
NEW 20.05.21 20:19 
в ответ AlexNek 20.05.21 20:04

Нет, он хочет, чтобы там было:

if((int? test = Asd()).HasValue) {}

хаха

Программист коренной житель20.05.21 20:20
NEW 20.05.21 20:20 
в ответ Срыв покровов 20.05.21 20:18
В то время как в с# можно обойтись кортежем

Да ладно! В яве нет генериков? :)

Срыв покровов коренной житель20.05.21 20:31
NEW 20.05.21 20:31 
в ответ alex445 20.05.21 12:42
Заводи класс (который только тут и будет использоваться), возвращай объект - как замшелые старички учили. И не дай бог перепутаешь, в стеке или в куче у тебя это храниться будет! Помню, раньше ещё, в 90-х объясняли, что у стека и кучи разная производительсноть, и надо там всё тонко разбирать. С тех пор у памяти настолько возросла производительность, а объёмы настолько увеличились, что прежняя оперативка влезает в сегодняший процессорный кеш. Да и компиляторы стали настолько умными, что аллоцируют везде, где им вздумается, и предсказать точно, где там что выделится, нельзя. Ты обозначил в коде так-то и так-то, а компилятор умнее тебя и оптимизирует как захочет. А на собесах до сих пор по языкам с неуправляемой памятью и компиляторм на ИИ гоняют по кучам и стекам.

чувак, ты правильные вещи говоришь!

Может все же пойдёшь к нам работать?))

Срыв покровов коренной житель20.05.21 20:37
20.05.21 20:37 
в ответ Программист 20.05.21 13:35
Может быть я чего-то не понимаю, то год - это проперти у DateTime.

именно. 3.1.2021 это kw 53/2020

Murr патриот20.05.21 20:39
Murr
NEW 20.05.21 20:39 
в ответ AlexNek 20.05.21 20:04

только в скобках

-----

У меня вызывает дискомфорт необходимость следить за двумя разными правилами зон видимости.


if(Asd(int out test)) {}

тест - видима тут


foreach(object item in list) {}

item - тут не видима

Murr патриот20.05.21 20:41
Murr
NEW 20.05.21 20:41 
в ответ Программист 20.05.21 20:19

он хочет, чтобы

-----

Силен, однако. смущ

Срыв покровов коренной житель20.05.21 20:42
NEW 20.05.21 20:42 
в ответ Программист 20.05.21 20:20
Да ладно! В яве нет генериков? :)

чувак, ты может почитаешь все же, о чем речь идёт?))

https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/value-tuples



AlexNek патриот20.05.21 20:45
AlexNek
NEW 20.05.21 20:45 
в ответ Murr 20.05.21 20:39

А что будем делать с энтим?

Asd(int out test);


Не вижу никакой связи if и foreach смущ


А тут что неправильно?

int test;

if(Asd(out test)) {}

тест - видима тут

Murr патриот20.05.21 20:50
Murr
NEW 20.05.21 20:50 
в ответ AlexNek 20.05.21 20:45, Последний раз изменено 20.05.21 20:51 (Murr)

А что будем делать с энтим?

-----

Пользовать.

Пользование от дискомфорта не избавляет.

От дискомфорта избавляет:

int? test = Asd(); спок

koder патриот20.05.21 20:56
koder
NEW 20.05.21 20:56 
в ответ Murr 20.05.21 19:05
.е. ты сообщишь челу об ошибке и он ее исправит...


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


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


Ещё раз. Мы имеем дело со случаем, когда продолжение работы невозможно. От слова совсем. Ну оборвался файл и пошел мусор. Какой парсер ты будешь к мусору искать?


И ООП ничего не говорит о логах. Или о том, как объект должен реагировать на ошибку. И даже о том, что он должен делать с ошибкой. Например это веб приложение без логов и ошибка произошла на уровне уровня доступа к базе данных. Задача - сформировать правильный ответ сервера. Но уровень не имеет выход на транспортный уровень и ошибку нужно догнать до слоя API. Где и будет сформирован и отослан ответ.


Таким образом каждое приложение имеет свою стратегию обработки ошибок, централизованную и стандартную для всего приложения, а не просто в логи пишет.


Вроде как тема несколько другая - иметь оут-параметер или упакованный возврат.


Смотри, не моя тема, умолкаю😀

AlexNek патриот20.05.21 21:02
AlexNek
NEW 20.05.21 21:02 
в ответ Murr 20.05.21 20:50
Пользовать.

Ты ента...хвостом не виляй. Речь идет о области видимости зло

Murr патриот20.05.21 21:35
Murr
NEW 20.05.21 21:35 
в ответ koder 20.05.21 20:56

вижу, что дальнейшая обработка невозможна

-----

Каким образом это определилось?

Тем, что не смогли распарсить поле?

Ой-ей - так оно - опциональное. Причем в первой версии требовалось нулевое значение для обозначения не заданности, а во второй - можно оставить просто пустым.


Какой парсер ты будешь к мусору искать?

-----

Мусорный, разумеется. безум

Тем не менее - даже по мусору предпочту получить отчет по каждому полю на парсинге которого произошла ошибка.

И - да - даже в том случае когда происходит чисто автоматическая обработка импорта.


приложение имеет свою стратегию обработки ошибок

-----

При любой обработке ошибок - источником проблемы когда-нибудь будет заниматься чел.

Вот этому челу и нужна будет достаточно детальная информация для выявления причин.

У меня, например, писалась не только ошибка, а вообще все исходные данные с разметкой и результирующая распасовка по полям.

По каждой записи, с описанием всех возникших ошибок.

Очень, знаешь ли, помогало при выявлении проблем.

Murr патриот20.05.21 21:37
Murr
NEW 20.05.21 21:37 
в ответ AlexNek 20.05.21 21:02

Ты ента...

-----

Я так прямо и говорю - от дискомфорта не избавляет.

Программист коренной житель20.05.21 22:27
NEW 20.05.21 22:27 
в ответ Срыв покровов 20.05.21 20:42
чувак, ты может почитаешь все же, о чем речь идёт?))

Речь о синтаксическом сахаре над ValueTuple<T1,T2>.

Срыв покровов коренной житель20.05.21 22:47
NEW 20.05.21 22:47 
в ответ Программист 20.05.21 22:27

да, ты конечно можешь сам написать классы ValueTuple<T1,T2>, ValueTuple<T1,T2,Т3> и тд

Но даже тут поля в них не будут именными.

koder патриот21.05.21 07:47
koder
NEW 21.05.21 07:47 
в ответ Murr 20.05.21 21:35, Последний раз изменено 21.05.21 07:48 (koder)
Каким образом это определилось?

Путем интенсивной мозговой деятельности улыб Murr, ну ты же думаешь, когда программируешь? Итак, ты ставишь проверку и продумываешь стратегию поведения проги после нахождения исключительной ситуации. У тебя действительно в жизни встечалась только одна ошибка - "не смогли распарсить поле"? Да нет никаких полей в неправильном файле. От слова совсем. Это если брать импорт. В сложном импорте с несколькими файлами это может быть отсутствие одного из файлов. Это может быть вообще не импорт улыб


даже по мусору предпочту получить отчет по каждому полю

Откуда в мусоре поля? смущ

Вот этому челу и нужна будет достаточно детальная информация для выявления причин.

2 Гб файл импорта, который случайно попал в прогу. 2 дня прога пыхтела и никто не знал, как ее остановить. После чего прога вывалила 4Гб ценной информации по КАЖДОМУ полю, что оно не найдено хаха И в конце скромно приписала - и вообще файл у вас не тот. хаха Эти 4Гб детальной информации очень порадуют оператора, который не исправляет и не создает файлы импорта. Он их просто получает.

Murr патриот21.05.21 14:02
Murr
NEW 21.05.21 14:02 
в ответ koder 21.05.21 07:47

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

------

Я действительно думаю когда программирую.

Потому у меня в коде исключительные ситуации не связаны с тем какие данные обрабатываются и какие рассчеты производятся.

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


Откуда в мусоре поля?

-----

А почемы ты думаешь что их там нет? смущ

Хотя - да, их там нет. Впрочем, их нет и в корректном файле данных.

Потому как "поле" это то как прожка читает данные.

Прожка у тебя есть по определению - следовательно она будет читать поля из что-ей-там-дадут.



4Гб ценной информации по КАЖДОМУ полю, что оно не найдено

-----

Обеспечь достаточное количество пустого дискового пространства.

Остальное - забота того кто будет разбираться с ситуацией.



и никто не знал, как ее остановить

-----

Хреново же у вас пишут код... хмммбезум

alex445 местный житель22.05.21 10:15
NEW 22.05.21 10:15 
в ответ Murr 21.05.21 14:02, Последний раз изменено 22.05.21 10:19 (alex445)

В комментах к видео о работе разрабом в Силиконовой долине встретил:


расскажите, пожалуйста, как на ваших местах работы (а вы уже побывали в нескольких именитых компаниях, о которых ваши зрители по бОльшей части пока что только мечтают) относятся к TDD-подходу или даже к DDD? И пользуются ли они метриками управления зависимостей при управлении архитектурой отдельных компонентов и проекта в целом, например, такими как REP / CCP / CRP?
Насколько канонично внедрен Agilie/Kanban? И интересно в целом, правда ли, что в Долине особо популярно (по сравнению с СНГ, например) следование заветам Роберта Мартина, Мартина Фаулера и других столпов индустрии или же на первом месте стоит только умение программиста "запиливать фичи быстро здесь и сейчас без оглядки на будущую поддержку"?
Почему то раньше имел субъективное мнение о "безупречности" (в разумных пределах) кода, рожденного в Долине, но некоторые ваши выпуски с рассказами о гиперактивных менеджерах, повышенном кортизоле из-за постоянного стреса и метриках, оценивающих количество фич в неделю пошатнули мою веру))


Можно ли где то встретить в коменте к мерж реквесту сообщение типа (абстрактный пример в вакууме):
"Переделай. Данный класс нарушает принцип устойчивости зависимостей SDP, т.к. его устойчивость меньше, чем устройчивость зависящих от него классов в соотношении 0.5 к 0.3"?

А у вас можно где-то встретить не то, что коммент к мерж реквесту, а хотя бы мнение коллег на кодревью, как выделено жирным? Что-то мне подсказывает, что вероятность стремится к нулю.


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

alex445 местный житель22.05.21 10:23
NEW 22.05.21 10:23 
в ответ Murr 21.05.21 14:02

и никто не знал, как ее остановить

-----

Хреново же у вас пишут код...

В некотором ПО серверную часть просто раз в сутки перезагружают. Т.е. сами серваки перезагружают. И так делают уже много лет (точно больше 10). Потому что память течёт, и оказалось, что перезагружать раз в сутки тупо проще, чем искать оставшиеся места утечек. Проект, кстати, был успешным много лет, но потом скатился, но не из-за постоянных перезагрузок, а глупости руководства.

3 4 5 6 7 8 9 10 11 12 13 все