Мед центр

Пошел в медицинский центр, смотрю как врач заполняет на компе информацию обо мне, чтобы не ошибся нигде. ФИО, дата рождения, раскрывает графу пол, а там: М, Ж, О, Ц...

Вы смотрите срез комментариев. Показать все
16
Автор поста оценил этот комментарий

Я до сих пор веду одну БД, которую сам когда-то проектировал и писал к ней тонны интерфейсов. Поле «пол» у меня одно время использовалось, в частности, для автоматической генерации различных писем – мужчинам писалось в обращении «уважаемый», женщинам – соответственно, «уважаемая». Но... в список адресатов иногда требовалось включить супружеские пары, которым отправлялось одно общее письмо. Поэтому поле «пол» у меня содержало третье значение – «двое». В этом случае при занесении в базу и при генерации писем поле «имя» интерпретировалось как имя одного из супругов, поле «отчество» – как имя другого, а обращение в письме автоматически генерировалось в виде: «Уважаемые Иван Иваныч и Марья Петровна!».

Поэтому не исключаю возможности наличия для этого поля и иных значений, например, для объединения субъекта в какие-либо группы, как однополые, так и разнополые. Программисты и проектировщики БД работают от конкретно поставленных задач, а их может быть множество самых разнообразных, тем более в медицине.

П.С. К слову, отдельной моей гордостью была функция по переводу фамилий в дательный падеж для написания адресной строки «кому». Охватывала практически все возможные варианты типичных фамилий, мужских и женских: Иванов, Ленский, Бунин, Седых, Черняк, Пономаренко, Заяц и т.д.

раскрыть ветку (25)
12
Автор поста оценил этот комментарий
Вот так и появляется legacy.
Нужно было вместо третьего пола реализовать связь между парами клиентов. Есть несколько способов это сделать.
Но то, что сделали вы - ужас.
раскрыть ветку (23)
2
Автор поста оценил этот комментарий
Связи у меня тоже были позднее реализованы, но для других целей. И группы, в том числе, как автоматически собираемые по различным признакам, так и формируемые вручную для тех или иных задач.

Проектирование сложных БД это всегда компромисс между принципом эластичности – возможности безболезненных дополнений и расширений в будущем, и принципом «бритвы Оккама» – несоздаванием ненужных сущностей. Например, часто используемый перечислимый тип данных с одной стороны легко может зайти при расширении в тупик, но с другой стороны его очень часто вполне достаточно, и эти данные далеко не всегда требуют создания отдельной коррелированной таблицы. Здесь многое зависит от понимания темы и просто от интуиции разработчика. Я писал базу конкретно под себя, и моё решение на тот момент было самым простым и изящным, и время показало, что оно было верным – больше расширений в этой части не понадобилось, и ничего переделывать до сих пор не пришлось.

раскрыть ветку (22)
2
Автор поста оценил этот комментарий

Третий пол, по-вашему, это "несоздавание ненужных сущностей"?

раскрыть ветку (1)
Автор поста оценил этот комментарий
В моём случае – да. Фиксация супружеских связей и их обработка в моей БД были чрезвычайно редким явлением и не слишком важной задачей, поэтому я и выбрал такое решение, прекрасно понимая его «нелигитимность». Да и задача эта уже отпала за ненадобностью.
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
Автор поста оценил этот комментарий
Вот это как раз я считаю некомпетентностью и диким непрофессионализмом. Настоящий специалист-профессионал ОБЯЗАН понимать ВСЁ в зоне своей ответственности. А задача хорошего руководителя – обеспечить наличие таких профи на своих местах.
Автор поста оценил этот комментарий

Про принцип бритвы Оккама, разумеется, согласен.

А вот с выводом про верное решение - нет. :)

Возможно, со временем вы это тоже поймёте.


Уверен, все новые сотрудники организации, для которой вы писали это приложение, улыбаются, когда им рассказывают про новый "пол" человека.

раскрыть ветку (7)
Автор поста оценил этот комментарий
Вы не очень внимательно читали мой текст. Я проектировал и писал эту БД под себя, сам и веду эту базу до сих пор в этой организации. Меня она на данный момент полностью устраивает. Та задача, простое решение которой я описал, уже давно не используется.
раскрыть ветку (6)
Автор поста оценил этот комментарий

Неверный вывод.


Вы пишете БД для использования в организации. Сейчас там вы. Если через месяц вы решите уехать в другой город, вместо вас с ней будет работать другой человек.

раскрыть ветку (5)
Автор поста оценил этот комментарий
Неверный вывод. Вы смотрите недостаточно широко, с позиции исполнителя. Так вот, если через месяц я уеду в другой город (а я всё не уезжаю уже 12-й год), моя система уедет вместе со мной, а моё место в этой организации просто перестанет существовать (а возможно, и сама организация в её нынешнем виде). Это МОЯ система, сделанная мной, для меня и для решения моих задач.
раскрыть ветку (4)
Автор поста оценил этот комментарий

Вывод делаете вы обо мне. И почему-то пытаетесь меня спопугайничать.

Я не делаю вывод, я делюсь опытом.


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


Вы 12 лет работаете в компании, но не факт, что будете работать 13-й, 14-й и т. п.

Да, кадры решают, но опыт показывает, что незаменимых людей нет. Нравится вам это или нет.

раскрыть ветку (3)
Автор поста оценил этот комментарий
И вы опять читаете невнимательно. Повторюсь: Это МОЯ система, сделанная мной, для меня и для решения МОИХ задач. Не для организации, не для коммерции, не для заказчика – мне никто её не заказывал, я делал её сам ДЛЯ СЕБЯ ЛИЧНО, и никому передавать не собираюсь. Нет меня – нет системы. Другой человек будет находить свои решения для своих задач – это его проблемы.

Теперь понятно?

И речь здесь шла вообще о другом.

раскрыть ветку (2)
Автор поста оценил этот комментарий

а, да ну тебя :)

раскрыть ветку (1)
Автор поста оценил этот комментарий
Ой, всё! :о)
Автор поста оценил этот комментарий

Есть такая поговорка: не пизди своим ребятам.


Если в полях "Имя", "Отчество" и "Пол" хранится что-либо, кроме имени, отчества и пола соответственно (в частности, пары имя-отчество в одном поле, имя-отчество супруга, информация о замужестве и пр.), то это плохая проектировка и плохой код.


Работа "от поставленной задачи", бритвы Окамм, пространные формулировки и рассуждения об эластичности оправданиями служить не могут. Просто сделано через жопу.

раскрыть ветку (9)
1
Автор поста оценил этот комментарий
И согласен, и... не согласен. В реальной жизни есть ещё понятие целесообразности. Именно поэтому вы редко найдёте полностью нормализованную БД до «пятого колена», как прописано в теории. Это попахивает паранойей. В моём случае на момент написания базы из порядка 2000 записей в данном модуле, было всего три-четыре супружеских пары, ради которых писать отдельную обработку не было смысла. Просто потому, что задача генерации таких писем была слишком редкой и не настолько значительный, чтобы в тот момент на неё тратить время. Всего в базе было несколько модулей, в каждом из которых были разные «обработки» разных сущностей, и письма генерились только в одном из них. То есть, других важных задач было много, и «развязка» этого крохотного узелка была просто отложена до лучших времён. А в дальнейшем эта задача не получила развития и вообще отмерла за ненадобностью, вот и всё.

Да и речь, собственно, здесь не об этом. А о том, что множественные значения для поля «пол», как оказывается, использовал не только я.

раскрыть ветку (8)
1
Автор поста оценил этот комментарий

Да, это прекрасное описание того, как в коде появляются глупости, вроде пола "супружеская пара", и какие оправдания этим глупостям придумываются. Потому что разработчику показалось нецелесообразным сделать правильно, а сделать криво показалось офигенной, очень оправданной и остроумной идеей.


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


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

раскрыть ветку (7)
Автор поста оценил этот комментарий
Знаете, что я вам могу сказать? Вы говорите сейчас или как строгий учитель, или как робкий, послушный ученик, который боится нагоняя от учителя, или как тупой кодер. А я самоучка в программировании, у меня не было учителей, кроме книг и интернет-учебников, меня никто не ругал, и мне никогда не нужно было бояться, что мне не поставят зачёт. Более того, программирование для меня – лишь небольшая и не самая значительная часть моей профессиональной деятельности. Я мог взять на работу программиста, а потом уволить его, но я поступил иначе – научился и сделал сам, расширив свои знания и возможности.

История знает огромное количество случаев, когда нечто криво сделанное оказывалось потом офигенной, оправданной и остроумной идеей. Я не претендую сейчас на такое изобретение, но никогда не боюсь выйти за рамки системы, сделать нечто нестандартное и необычное на первый взгляд. Тем более там, где никто и ничем не рискует – это не парашют, не горная страховка и не тормозная система автомобиля, здесь не нужно проверять решения на мешке с песком или рисковать жизнью. Успокойтесь и не бздите, в реальной жизни многое придётся делать не по учебникам, и если всё работает – это годное решение. Есть люди, которым нужен порядок, и есть те, кто управляет хаосом. Есть люди, которые пишут резюме и живут от зарплаты до зарплаты, и есть те, кто даёт работу, назначает зарплату и выплачивает её. Живущий только по учебникам, работающий строго по регламенту редко становится вторым.

раскрыть ветку (6)
Автор поста оценил этот комментарий

Речь не о гениальных задумках и мышлении за рамками, не нужно льстить себе. Речь о дурацкой идее хранить в поле "отчество" имя супруга, банально испортив тем самым таблицу. За такую идею у меню даже джуниор, которого вчера на работу взяли, получил бы по шапке, а разрабу с опытом я бы предложил отпуск взять или хотя бы пару отгулов, потому что ну явно переработал человек, если такие мысли в голову лезут.


Понимание, почему так делать не нужно, обычно приходит с опытом работы в команде и разработки крупного ПО (новичкам же предлагается в качестве аксиомы). Если понимание не пришло, качественного кода у человека не выйдет, вне зависимости от того, где он обучался. Я видел бездарных выпускников МГУ и видел прекрасных программистов-самоучек. Ваше образование не имеет значения, проблема в другом.


Вы не управляете хаосом, вы его создаете.


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

Хотя есть и исключения, даже довольно крупные - тот же Сбербанк, где все ПО с такой философией написано, и работает через хитро закрученную жопу. Вспоминаю, потому что регулярно тут вижу жалобы людей, как одна и та же операция в нормальных банках выполняется за пару минут, а в Сбере - за несколько часов, при ряде условий и если крупно повезет. И понимаю, почему так происходит.

Но это скорее наследие времен минувших, сейчас ситуация куда лучше и средний уровень специалистов выше.


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

раскрыть ветку (5)
Автор поста оценил этот комментарий

Волк не может нарушить традиций.

Видно, в детстве, слепые щенки,

Мы, волчата, сосали волчицу

И всосали: нельзя за флажки!

© Высоцкий

Вы так ни хрена не поняли! Повторюсь: Это МОЯ система, сделанная мной, для меня и для решения МОИХ задач. Не для организации, не для коммерции, не для заказчика – мне никто её не заказывал, я делал её сам ДЛЯ СЕБЯ ЛИЧНО, и никому передавать не собираюсь.

Ну а я из повиновения вышел,

За флажки: жажда жизни сильней,

Только сзади я с радостью слышал

Изумленные крики людей. ©

------------------------------------

Да и речь, собственно, здесь шла вообще о другом. Топикстартер удивился, что в какой-то БД какого-то медцентра поле «пол» содержит целый ряд непонятных значений. Я сделал предположение, приведя пример из своей практики. Вы же НИКАКОЙ версии по теме обсуждения не привели вообще, но позволили себе развести срач о моём личном деле и моих решениях. Ни обсуждения, ни тем более критики моих решений я не предполагал, мне это не нужно, и вы смело можете идти со своим мнением в пешее эротическое путешествие.

раскрыть ветку (4)
Автор поста оценил этот комментарий

Мне, к сожалению, на память не приходит никакой песни про людей, лишенных чувства эстетики. Вернее, одна приходит, но она обидная и цитировать ее потому не хочу.


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


О детях, понимаете ли, забочусь. Ну и о некоторых взрослых, потому что программист, у которого не атрофировано чувство прекрасного, ему физически больно, когда он подобные решения где-то встречает. Даже в отрыве от всех практических недостатков, вот просто с точки зрения красоты и изящества это ужасно. Как знакомая мелодия с фальшивыми нотами. Передергивает, знаете ли.

раскрыть ветку (3)
Автор поста оценил этот комментарий
Вот уж кто бы говорил об эстетике и чувстве прекрасного! Для вас прекрасное – это квадрат! Чувство импровизации и выход «за флажки» вам неведом. О вкусах не спорят, знаете ли.

Что касается детей, то вы наверное из тех учителей, кто старается побольнее ударить линейкой по рукам за неровный почерк, а в «старые добрые» времена практиковал розги и стояние на коленях в углу, на сухом горохе. То есть, если вам «физически больно», когда кто-то нарушает ваше убогое «чувство эстетики», вам не терпится поделиться с ним этой болью. Извините, у вас своя правда, у меня своя, но ваши императивы ближе к психологии мелкого клерка, ничтожества – мне они категорически не подходят.

Есть люди, которые строго соблюдают правила, и ещё более внимательно следят, чтобы эти правила соблюдали другие. Из них получаются хорошие надзиратели и милиционеры.

А есть люди, которые ПИШУТ эти правила. Они обладают обострённым чувством свободы и они умеют объяснить мотивы тех или иных ограничений, умеют понять разумные границы применимости каждого правила, умеют при необходимости отступать от этих правил, соблюдая не букву, но дух закона. Из таких людей вырастают те, кого называют Учителем с большой буквы.

Я рассказал о своём изящном, простом и удачном решении! Да, оно отступает от принятых правил, но в контексте моих задач оно было для меня УДАЧНЫМ. А вам, с вашей убогой эстетикой вертухая, лучше не делать мне замечаний, а также не заниматься с детьми и не рассуждать о педагогике, никогда!

раскрыть ветку (2)
5
Автор поста оценил этот комментарий
В этом случае при занесении в базу и при генерации писем поле «имя» интерпретировалось как имя одного из супругов, поле «отчество» – как имя другого
Господи, какой пиздец...
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку