значит приглючилось
Шедевр кода
-
- Уже с Приветом
- Posts: 28294
- Joined: 29 Aug 2000 09:01
- Location: SPB --> Gloucester, MA, US --> SPB --> Paris
Re: Шедевр кода
Красные подчеркивания мне прислали
Они там видимо что-то обсуждали
Они там видимо что-то обсуждали
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
-
- Уже с Приветом
- Posts: 15526
- Joined: 27 Sep 2007 22:53
Re: Шедевр кода
А если писать для какого-нибудь микропроцессора с ограниченным набором памяти - то именно через оператор ветвления и придется корячиться. Можно так-же предположить, что переферийное оборудование выдает название города только большими буквами.
В этом случае исправленный пример выглядит вполне корректным так как предполагает что входной параметр заведомо в верхнем регистре.
Хотя сам скрин кода, показанного в студии делает сомнительным эти рассуждения для конкретного кода.
Другой вариант - это перенос очень старого кода, где ранее город задавался только большими буквами, а при переносе это требование было аннулировано. Тогда попытки исправления кода без добавления новых библиотек выглядят вполне логичными.
В этом случае исправленный пример выглядит вполне корректным так как предполагает что входной параметр заведомо в верхнем регистре.
Хотя сам скрин кода, показанного в студии делает сомнительным эти рассуждения для конкретного кода.
Другой вариант - это перенос очень старого кода, где ранее город задавался только большими буквами, а при переносе это требование было аннулировано. Тогда попытки исправления кода без добавления новых библиотек выглядят вполне логичными.
-
- Уже с Приветом
- Posts: 15526
- Joined: 27 Sep 2007 22:53
Re: Шедевр кода
Да нифига. Из показанного куска кода вовсе не следует что город вводится пользователем. Это может быть, к примеру, радиограмма.
Поэтому можно лишь предположить что название города поступает всегда в верхнем регистре или переводится в оный сразу на этапе получения.
-
- Уже с Приветом
- Posts: 8090
- Joined: 08 Nov 2004 12:24
- Location: GA
Re: Шедевр кода
Не надо ничего предполагать, надо писать код, который будет работать всегда и везде.Мальчик-Одуванчик wrote: ↑30 Dec 2017 18:44Да нифига. Из показанного куска кода вовсе не следует что город вводится пользователем. Это может быть, к примеру, радиограмма.
Поэтому можно лишь предположить что название города поступает всегда в верхнем регистре или переводится в оный сразу на этапе получения.
-
- Уже с Приветом
- Posts: 15526
- Joined: 27 Sep 2007 22:53
Re: Шедевр кода
Если по условиям задачи строка поступает в верхнем регистре, то дополнительное её перекодирование снова в верхний регистр выглядит еще большей глупостью.Prosche wrote: ↑30 Dec 2017 20:12Не надо ничего предполагать, надо писать код, который будет работать всегда и везде.Мальчик-Одуванчик wrote: ↑30 Dec 2017 18:44Да нифига. Из показанного куска кода вовсе не следует что город вводится пользователем. Это может быть, к примеру, радиограмма.
Поэтому можно лишь предположить что название города поступает всегда в верхнем регистре или переводится в оный сразу на этапе получения.
-
- Уже с Приветом
- Posts: 8090
- Joined: 08 Nov 2004 12:24
- Location: GA
Re: Шедевр кода
По условиям задачи... Смею предположить, что вам ближе академическая деятельность.
-
- Уже с Приветом
- Posts: 3000
- Joined: 14 Apr 2004 01:11
- Location: SFBA (было: Минск, Беларусь)
Re: Шедевр кода
Придирка совершенно левая. Придраться можно, но это явный "nothing to write home about". Какие-нибудь забубенные "практики" данной предметной области возможно даже веско заметят, что вместо того, чтобы завязываться на правильность конвертации uppercase-lowercase для кириллических символов, лучше просто явно рассмотреть возможные случаи по отдельности. И, вполне возможно, они даже будут правы.
Зачем писали две отдельные функции - не ясно, ибо это maintenance nightmare. Но не более того...
Зачем писали две отдельные функции - не ясно, ибо это maintenance nightmare. Но не более того...
Best regards,
Андрей
Андрей
-
- Уже с Приветом
- Posts: 803
- Joined: 24 Jan 2007 07:32
- Location: Сергели->Новосибирск->SFBA->Новосибирск->Москва->NY->SFBA
Re: Шедевр кода
A чем именно лучше? Вы не доверяете функциям конвертации на кириллице?
То что внизу конечно не видно но можно предположить что там тоже кириллица.
Если бы хорошие кодеры предполагали ваш вариант "рассмотреть возможные случаи по отдельности" то написали бы поясняющий комментарий.
Спи быстрее, твоя подушка нужна другому. Copyright Зощенко
-
- Уже с Приветом
- Posts: 28294
- Joined: 29 Aug 2000 09:01
- Location: SPB --> Gloucester, MA, US --> SPB --> Paris
Re: Шедевр кода
Наиболее странно здесь что делается reverse lookup - не из id в name, а наоборот. В хорошо спроектированной системе такого не должно.быть, равно как и hardcoded list.
Однако можно с большой вероятностью предложить, зачем такое нужно: рендерят страницу, на ней оказывается название города форматированное разным образом, а id нет. А оно нужно для обращения к базе. Его и находят обратными ходом
В любом случае приговор один, расстрел.
Однако можно с большой вероятностью предложить, зачем такое нужно: рендерят страницу, на ней оказывается название города форматированное разным образом, а id нет. А оно нужно для обращения к базе. Его и находят обратными ходом
В любом случае приговор один, расстрел.
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
-
- Уже с Приветом
- Posts: 3000
- Joined: 14 Apr 2004 01:11
- Location: SFBA (было: Минск, Беларусь)
Re: Шедевр кода
Мимо кассы. Понятно, что lookup из id в name у них, без сомнения, есть - вы его просто не показали. А причин для реализации обратного lookup из name в id могут быть миллионы разных. Интерфейсные, например.
Это действительно хорошее замечание. Но ведь подразумевалось не это, правда? Иначе не было бы причин постить два скриншота.
С еще большей вероятностью некие данные идут из какой-то third party системы, с которой нет договоренности о согласованных стандартизованных id населенных пунктов (да и не нужно - это было бы криво), но зато есть стандартизованные текстовые названия по какому-нибудь ГОСТу (как и должно быть).
Высосано из пальца.
Best regards,
Андрей
Андрей
-
- Уже с Приветом
- Posts: 28294
- Joined: 29 Aug 2000 09:01
- Location: SPB --> Gloucester, MA, US --> SPB --> Paris
Re: Шедевр кода
Нет, это веб сайт. Они сами там властны делать что хотят. А сделали это
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
-
- Уже с Приветом
- Posts: 803
- Joined: 24 Jan 2007 07:32
- Location: Сергели->Новосибирск->SFBA->Новосибирск->Москва->NY->SFBA
Re: Шедевр кода
Можно предположить что угодно.
Но согласно бритве Оккама самое простое объяснение порой самое лучшее.
Если бы что то подразумевали написали бы комментарии хотя бы.
Спи быстрее, твоя подушка нужна другому. Copyright Зощенко
-
- Уже с Приветом
- Posts: 4827
- Joined: 15 May 2001 09:01
Re: Шедевр кода
У Microsoft постоянно какие-то проблемы с русским. Системная функция перевода регистра у них вечно зависела от каких-то магических системных параметров типа кодовой страницы или unicode супротив зоопарка multibyte. Причём эти установки могли различаться не только между машиной разработчика и разными серверами по дороге до боевого, но даже для разных приложений/процессов внутри одной Windows.
Я хорошо понимаю разработчиков, которым проще сопровождать две частично дублирующие функции в своём коде, чем убеждать не то что неподконтрольных, часто даже неизвестных им людей следить за тем, что очередной патч существующей Windows или в пожарном порядке развёрнутая свежая Windows имеют все необходимые настройки. Причём в новой винде неожиданно могут появиться расширенные настройки для того же самого, которые придётся осваивать в пожарном проядке - а шишки посыпятся, как всегда, на разработчиков.
Нет уж. В такой зыби лучше писать понадёжнее. Пусть это и выглядит смешным на первый взгляд.
Я хорошо понимаю разработчиков, которым проще сопровождать две частично дублирующие функции в своём коде, чем убеждать не то что неподконтрольных, часто даже неизвестных им людей следить за тем, что очередной патч существующей Windows или в пожарном порядке развёрнутая свежая Windows имеют все необходимые настройки. Причём в новой винде неожиданно могут появиться расширенные настройки для того же самого, которые придётся осваивать в пожарном проядке - а шишки посыпятся, как всегда, на разработчиков.
Нет уж. В такой зыби лучше писать понадёжнее. Пусть это и выглядит смешным на первый взгляд.
-
- Уже с Приветом
- Posts: 7723
- Joined: 29 Mar 2000 10:01
- Location: Kirkland,WA
Re: Шедевр кода
зоопарк с collation, encoding, coordinate systems (аnd also time zones which change 10 time per year) гарантирует что пришельцы никогда не сумеют попасть в то место и время чтобы поработить землю одним щелчком.
-
- Уже с Приветом
- Posts: 20297
- Joined: 01 Dec 2003 23:16
- Location: Russia->USA
Re: Шедевр кода
Dictionary readonly это сишарповский мап? Я думаю про GetCityCodeByCityNameLower это была шьютка юмора, а Дима ожидал возмушения варварским хардкодом.OtherSide wrote: ↑29 Dec 2017 10:05о чем вы говорите, наоброт требования повышаются, в 80х это был фан и романтика, никакой культуры кодирования не было вообще.sfbaguy1 wrote: ↑28 Dec 2017 21:55 Концентрация идиотов в индустрии ассимптотически стремится к их концентрации в общем населении. В эпоху зеленых телевизоров
количество приличных людей среди пишущих код было значительно больше. Сейчас же столько пены. Вон ммодел - двух слов связать не
может, а все туда же - код писать.
Кстати в данном примере ошибка не только в том, что не использовался ToUpperCase(), там вместо кейсов можно было проинициализировать Dictionary readonly, он еще и быстрее работал бы.
По части "требования повышаются" ... во первых это не противоречит утверждения sfbaguy1 - и требования меняются и количество людей в профессии сильно увеличилось.
я бы сказал, сильно увеличивается %% прикладного ПО в том числе очень большие и сложные проекты.
Соответственно кроме оптимальности кода становятся более важными моменты его доступности для коллег, поддержка, расширяемость итд. С другой стороны инструменты сильно развились и позволяют людям с гораздо более низкой квалификацией писать сильно более сложные вещи.
IMO это как раз большой прогресс, что даже вчерашний парихмахер с гуманитарным складом ума таки может сделать что-то полезное.
Говори что думаешь, думай что говоришь!
Маразм крепчал и скрепы гнулись
Маразм крепчал и скрепы гнулись
-
- Уже с Приветом
- Posts: 20297
- Joined: 01 Dec 2003 23:16
- Location: Russia->USA
Re: Шедевр кода
джедаи и сейчас есть, более того простора помахать световыми мечами куда поболе. опять же в фундамент Unix я не заглядывал, но некоторые кирпичики той-же жабы ещё из того гхм..на были сляпаны, подозреваю что и в nix-сах копипаста прокатывала там-сям и даже мигрировала между операционками.sfbaguy1 wrote: ↑30 Dec 2017 04:47 Ну да, не было культуры кодирования. До 80х был создан весь фундамент - Кнут, Вирт, структурное программирование, Ахо-Хопкрофт-Ульман, Unix.
Да и софт, который тогда создавался, был серьезней, чем сейчас. Индусская копипаста не прокатила бы. Веба не было как класса.
Программисты были суровые бородатые белые мужики. Эдакие джедаи, не то что щас - всякое чмо и быдло.
Говори что думаешь, думай что говоришь!
Маразм крепчал и скрепы гнулись
Маразм крепчал и скрепы гнулись
-
- Уже с Приветом
- Posts: 20297
- Joined: 01 Dec 2003 23:16
- Location: Russia->USA
Re: Шедевр кода
возможно toUpperCase() делается на стороне клиента и в серверном коде нафиг не нужна. типа по спецификации входящие данные уже должны быть в верхнем регистре и нефиг городить отсебятину, но наличие первой функции заставляет сомневатся в этой теории
Говори что думаешь, думай что говоришь!
Маразм крепчал и скрепы гнулись
Маразм крепчал и скрепы гнулись
-
- Уже с Приветом
- Posts: 1657
- Joined: 26 Jan 2006 20:42
Re: Шедевр кода
Вон из профессии за такоеgeek7 wrote:возможно toUpperCase() делается на стороне клиента и в серверном коде нафиг не нужна. типа по спецификации входящие данные уже должны быть в верхнем регистре и нефиг городить отсебятину, но наличие первой функции заставляет сомневатся в этой теории
Sent from my iPhone using Tapatalk
-
- Уже с Приветом
- Posts: 20297
- Joined: 01 Dec 2003 23:16
- Location: Russia->USA
Re: Шедевр кода
судя по тому, что диме прислали уже с подчёркиваниями, даже в этой конторе уже консенсус по данному вопросу... но прикольно погадать какими соображениями мог руководствоватся афтар. например идея с проблемами кодировок в винде мне показалась забавной. насчёт оптимизации скорости хеш vs ветвление - тоже прикольно.XAOC wrote: ↑08 Jan 2018 18:19Вон из профессии за такоеgeek7 wrote:возможно toUpperCase() делается на стороне клиента и в серверном коде нафиг не нужна. типа по спецификации входящие данные уже должны быть в верхнем регистре и нефиг городить отсебятину, но наличие первой функции заставляет сомневатся в этой теории
Говори что думаешь, думай что говоришь!
Маразм крепчал и скрепы гнулись
Маразм крепчал и скрепы гнулись
-
- Уже с Приветом
- Posts: 28294
- Joined: 29 Aug 2000 09:01
- Location: SPB --> Gloucester, MA, US --> SPB --> Paris
Re: Шедевр кода
Про порог вхождения я согласен. С одной стороны, я против быдлокода. С другой стороны, код, написанный иными гуру... Помните пример когда hello world пишется на несколько страниц с классами там presenter, observer, и еще чего то...geek7 wrote: ↑08 Jan 2018 18:03Dictionary readonly это сишарповский мап? Я думаю про GetCityCodeByCityNameLower это была шьютка юмора, а Дима ожидал возмушения варварским хардкодом.OtherSide wrote: ↑29 Dec 2017 10:05о чем вы говорите, наоброт требования повышаются, в 80х это был фан и романтика, никакой культуры кодирования не было вообще.sfbaguy1 wrote: ↑28 Dec 2017 21:55 Концентрация идиотов в индустрии ассимптотически стремится к их концентрации в общем населении. В эпоху зеленых телевизоров
количество приличных людей среди пишущих код было значительно больше. Сейчас же столько пены. Вон ммодел - двух слов связать не
может, а все туда же - код писать.
Кстати в данном примере ошибка не только в том, что не использовался ToUpperCase(), там вместо кейсов можно было проинициализировать Dictionary readonly, он еще и быстрее работал бы.
По части "требования повышаются" ... во первых это не противоречит утверждения sfbaguy1 - и требования меняются и количество людей в профессии сильно увеличилось.
я бы сказал, сильно увеличивается %% прикладного ПО в том числе очень большие и сложные проекты.
Соответственно кроме оптимальности кода становятся более важными моменты его доступности для коллег, поддержка, расширяемость итд. С другой стороны инструменты сильно развились и позволяют людям с гораздо более низкой квалификацией писать сильно более сложные вещи.
IMO это как раз большой прогресс, что даже вчерашний парихмахер с гуманитарным складом ума таки может сделать что-то полезное.
Как приятно вернуться к процедурному SQL из мира, где реальность мелко настругана на десятки мелких однострочных классов, абстрактных до такой степени что не видишь никакой связи с реальностью, всякие фабрики фабрик фабрик...
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
-
- Уже с Приветом
- Posts: 28294
- Joined: 29 Aug 2000 09:01
- Location: SPB --> Gloucester, MA, US --> SPB --> Paris
Re: Шедевр кода
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
-
- Уже с Приветом
- Posts: 15770
- Joined: 01 Mar 2008 15:14
-
- Уже с Приветом
- Posts: 28294
- Joined: 29 Aug 2000 09:01
- Location: SPB --> Gloucester, MA, US --> SPB --> Paris
Re: Шедевр кода
А после выпаса коров в Индии в индустрию типа не придти?
P.S. ИНДУСтрия... Совпадение? Не думаю (С)
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
-
- Уже с Приветом
- Posts: 20297
- Joined: 01 Dec 2003 23:16
- Location: Russia->USA
Re: Шедевр кода
Я это переодически слышу.. а потом очередной подьём и те кто не воротят нос от маленьких по мнению "дедов" зряплат итд таки находят способы и резоны войти. уж в какую профессию с улицы войти можно то это в IT .. в дворники может и попроще, но не факт
Говори что думаешь, думай что говоришь!
Маразм крепчал и скрепы гнулись
Маразм крепчал и скрепы гнулись