Вопросы с тегом «design»

94
Можно ли использовать списки в реляционной базе данных?

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

92
Является ли хорошей идеей спроектировать архитектуру, полагая, что классы пользовательского интерфейса могут быть заменены интерфейсом командной строки?

На странице 25 Code Complete говорится, что неплохо иметь возможность легко заменить обычные классы пользовательского интерфейса на один из командной строки. Зная его преимущества для тестирования, как насчет проблем, которые он может принести? Окажется ли эта дополнительная работа действительно...

90
Со всеми этими услугами, как я не могу быть анемичным?

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

88
Почему некоторые программы на C написаны в одном огромном исходном файле?

Например, инструмент SysInternals "FileMon" из прошлого имеет драйвер режима ядра, исходный код которого полностью находится в одном файле из 4000 строк. То же самое для первой когда-либо написанной программы ping (~ 2000...

88
Какие функции вы хотели бы иметь в PHP? [закрыто]

Так как сейчас сезон отпусков и все загадывают желания, мне интересно, какие языковые функции вы бы хотели добавить в PHP? Я заинтересован в некоторых практических предложениях / пожеланиях для языка. Под практическим я подразумеваю: Что-то, что можно сделать практически (не: «Я бы хотел, чтобы PHP...

87
Почему main () должно быть коротким?

Я занимаюсь программированием более 9 лет, и по совету моего первого учителя программирования я всегда держу свою main()функцию чрезвычайно короткой. Сначала я понятия не имел, почему. Я просто повиновался, не понимая, к радости моих профессоров. Получив опыт, я понял, что если я правильно...

87
Что такое «мягкое кодирование»?

В этой статье Алекса Пападимулиса вы можете увидеть этот фрагмент: private void attachSupplementalDocuments() { if (stateCode == "AZ" || stateCode == "TX") { //SR008-04X/I are always required in these states attachDocument("SR008-04X"); attachDocument("SR008-04XI"); } if (ledgerAmnt >= 500000) {...

86
ООП сложно, потому что это не естественно?

Часто можно услышать, что ООП естественно соответствует тому, как люди думают о мире. Но я бы категорически не согласился с этим утверждением: мы (или, по крайней мере, я) концептуализируем мир с точки зрения отношений между вещами, с которыми мы сталкиваемся, но в центре внимания ООП находится...

84
Недостатки дизайна и борьбы с унижением от него [закрыто]

Вы всегда были в корне верны в проектах программного обеспечения, которые вы предложили? Когда вы даете какой-то дизайн, который был в корне неверным, вы теряете уважение коллег по команде. Независимо от того, что вы делаете после этого, вы в конечном итоге будете перепроверены за все, что вы...

84
Богатые доменные модели - как именно вписывается поведение?

В дебатах моделей предметной области Rich против Anemic Интернет полон философских советов, но не хватает авторитетных примеров. Цель этого вопроса - найти четкие рекомендации и конкретные примеры правильных моделей проектирования на основе доменов. (В идеале в C #.) Для реального примера эта...

83
Является ли DRY врагом управления программными проектами?

Одним из самых основных и общепринятых принципов разработки программного обеспечения является СУХОЙ (не повторяйте себя). Также ясно, что большинство программных проектов требуют какого-то управления. Каковы задачи, которыми легко управлять (оценка, график, контроль)? Верно, повторяющиеся задачи,...

83
Я могу написать код ... но не могу хорошо спроектировать. Какие-либо предложения? [закрыто]

Я чувствую, что у меня хорошо получается писать код по частям, но мои проекты действительно ужасны. Вопрос в том, как мне улучшить мой дизайн и, в свою очередь, стать лучшим дизайнером? Я думаю, что школы и колледжи хорошо учат людей тому, как стать хорошими в решении математических задач, но...

82
Разработчики Java сознательно отказались от RAII?

Как давний программист на C #, я недавно узнал больше о преимуществах Resource Acquisition Is Initialization (RAII). В частности, я обнаружил, что идиома C #: using (var dbConn = new DbConnection(connStr)) { // do stuff with dbConn } имеет эквивалент C ++: { DbConnection dbConn(connStr); // do...

82
Если ноль плох, почему современные языки реализуют его? [закрыто]

Я уверен, что разработчики языков, таких как Java или C #, знали проблемы, связанные с существованием нулевых ссылок (см. Действительно ли нулевые ссылки - это плохо? ). Также реализация типа параметра не намного сложнее, чем нулевые ссылки. Почему они решили включить его в любом случае? Я уверен,...

81
Должен ли я использовать генератор синтаксического анализатора или я должен свернуть свой собственный код лексера и анализатора?

Какие конкретные преимущества и недостатки каждого способа работы над грамматикой языка программирования? Почему / Когда я должен катиться самостоятельно? Почему / Когда я должен использовать...

81
Должен ли я использовать Dependency Injection или статические фабрики?

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

78
Почему String неизменяем в Java?

Я не мог понять причину этого. Я всегда использую класс String, как и другие разработчики, но когда я изменяю его значение, создается новый экземпляр String. В чем может быть причина неизменности класса String в Java? Я знаю, что есть некоторые альтернативы, такие как StringBuffer или...

77
Сначала код против базы данных сначала

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

77
Что на самом деле не так с конечной точкой, возвращающей HTML, а не данные JSON?

Когда я впервые начал изучать PHP (около 5 или 6 лет назад), я узнал об Ajax и прошел «фазы»: Ваш сервер возвращает данные HTML, и вы помещаете их в innerHTML DOM Вы узнаете о форматах передачи данных, таких как XML (и говорите «ооо, значит, для этого он и используется»), а затем JSON. Вы...

76
Должны ли мы разрабатывать программы, чтобы случайно убить себя? [закрыто]

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