Публикации по теме 'dry'


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

Размышления DRY тогда и сейчас
Я был вдохновлен написать это после того, как прочитал отличный пост в блоге о DRY: https://gordonc.bearblog.dev/dry-most-over-rated-programming-principle/ Когда я начал свою карьеру, я довольно быстро узнал о DRY. В кодовой базе, над которой я работал, было очень мало тестов и много дублированных бизнес-правил, которые не должны были дублироваться, так что принцип имел смысл. Однако кодовая база также имела массу повторного использования, что было еще более проблематичным. Такие вещи,..

Старый добрый подход к табличному тестированию
Чаще всего мне приходится тестировать фрагмент кода, подобный следующему. const formatHourFromAMPMto24 = (hour, period) => { // ... // Some addition and substraction logic that converts // an AMPM formatted hour to 24 hour format and returns it } Достаточно просто проверить правильно? Давайте напишем пару тестовых случаев, которые охватывают некоторые входные и выходные ситуации. Да, и давайте также удостоверимся, что мы покрываем некоторые крайние случаи, такие как 12PM и 12AM.

Шаблон проектирования буквенных таблиц в C
Всегда сложно сохранять сжатый и безопасный код C / C ++. Вот шаблон проектирования, который сохраняет ваш код «СУХИМ» при «распределении» некоторых фиксированных данных по определению «enum», определению массива, оператору переключения и другому коду. Он также известен под названием X-macro. Пример: enum Size { SIZE_SMALL, SIZE_MEDIUM, SIZE_LARGE }; int sizeRanges[][2] = { {0, 10}, {11, 14}, {15, 20} }; const char *getSizeName(enum Size size) { switch (val) { case..

Вопросы по теме 'dry'

DRY и подобные запросы
Работая над конкретным приложением, я снова и снова пишу очень похожие запросы. Они не совсем одинаковы, но имеют очень похожую форму и встроены в почти идентичные фрагменты кода, например, , $Mysqli = new mysqli; if ($Stmt =...
254 просмотров
schedule 27.12.2022

Операторы DRY LINQ для таблиц с общими столбцами
Вот интересная проблема. Есть ли способ написать некоторый код с использованием LINQ to SQL, который способен выполнять ОБНОВЛЕНИЕ таблицы, зная только, что данная таблица содержит столбцы x, y, z, но не зная во время компиляции, с какой таблицей он...
364 просмотров
schedule 01.07.2023

Как сбалансировать принцип DRY с минимизацией зависимостей?
У меня проблема с принципом DRY (не повторяйтесь) и минимизацией зависимостей, которые вращаются вокруг механизмов правил Rete. Механизмы правил в крупных ИТ-организациях, как правило, относятся к Enterprise (обратите внимание на заглавную букву...
740 просмотров
schedule 10.01.2023

Как сгенерировать неконстантный метод из константного метода?
Стремясь к константной корректности, я часто пишу такой код class Bar; class Foo { public: const Bar* bar() const { /* code that gets a Bar somewhere */ } Bar* bar() { return const_cast< Bar* >( static_cast< const Foo*...
1791 просмотров
schedule 08.09.2022

Частичная форма DRY для создания и обновления
У меня есть частичная форма _form.html.erb, которая помогает высушить мой код, но мне нужно, чтобы форма имела разные метки в зависимости от того, создаю ли я нового пользователя или обновляю существующего пользователя. Вот моя форма частичная....
3878 просмотров
schedule 22.04.2023

Утиная печать: как бы вы поступили в этой ситуации
Относительно новый для python. Недавно я опубликовал вопрос о проверке того, что тип данных является логическим. [ Используйте дескриптор (EDIT: не один декоратор) для нескольких атрибуты? В данных ответах упоминается утиная печать. У меня...
157 просмотров
schedule 29.12.2023

Рефакторинг wpf DataGridTextColumn
Я использую DataGrid в приложении WPF, которое имеет несколько столбцов (буквально по одному на каждый день недели), которые отличаются только своим индексом данных. Образец xaml приведен ниже. Как я могу реорганизовать это во что-то более СУХОЕ?...
960 просмотров
schedule 18.05.2023

Улучшение использования MVC
Я занят созданием приложения MVC на PHP с использованием фреймворка Kohana MVC, и оно работает очень хорошо. Но есть небольшие досады, на которые я хотел бы обратить внимание. Много логики повторяется в действиях в контроллерах и самих...
140 просмотров
schedule 05.10.2022

CakePHP: AppController для доступа к модели производного контроллера
Я хочу реализовать общие действия «добавить» в AppController. Для этого мне нужно получить доступ к соответствующей модели производного контроллера. Как мне это сделать?
2287 просмотров
schedule 06.06.2022

Куда в Rails поместить части, общие для всего приложения?
Куда я могу поместить частичные файлы, используемые более чем одной моделью? У меня есть страница под названием crop.html.erb , которая используется для одной модели - Photo . Теперь я хотел бы использовать его и для другой модели под названием...
17537 просмотров
schedule 24.01.2023

Как упростить мой помощник и сделать его более сухим, когда есть похожие Модели?
У меня возникают некоторые трудности с тем, чтобы сделать это более СУХИМ: http://gist.github.com/471225 Суть его вот в чем: У меня есть куча моделей, contact_email, contact_call, contact_letter и так далее. Они были необходимы для меня,...
66 просмотров
schedule 12.05.2023

Как высушить условную структуру ruby, необходимую для Rails
Я обнаружил, что мне часто приходится использовать структуру, чтобы избежать ошибки Rails undefined method 'name' for nil:NilClass . Структура выглядит следующим образом: if country.state country.state.name end Это похоже на...
256 просмотров
schedule 12.04.2023

Как высушить в Ruby?
Как я могу сделать это короче и расширить: def overview puts "All As:" for f in @a puts f end puts "\n" puts "All Bs:" for f in @b puts f end end
1068 просмотров
schedule 24.06.2022

Использование принципа DRY в XML
У нас есть продукт, в котором у каждого клиента есть конфигурационный XML-файл, содержащий наборы опций и подопций пользовательского интерфейса. Например, один тип пользователей (назовем их А) имеет один набор опций, а другой тип пользователей (Б)...
304 просмотров
schedule 19.03.2023

DRY: Советы, как не дублировать код?
Хорошо, вот мой вопрос, у меня есть база данных с такой схемой +-------------+ +------------+ +-----------+ + Object + + car + + computer + +-------------+ +------------+ +-----------+ + id + + object_id + + object_id + +...
813 просмотров
schedule 25.10.2023

DRY против безопасности и ремонтопригодности с MVC и моделями просмотра
Мне нравится стремиться к СУХОМУ, и, очевидно, это не всегда возможно. Тем не менее, я должен почесать голову над концепцией, которая кажется довольно распространенной в MVC, "Модель представления". Модель представления предназначена для передачи...
780 просмотров
schedule 17.06.2023

rails 3 сухой ненавязчивый javascript
Я меняю все на ненавязчивый javascript, так как я думаю, что это значительно упрощает отладку и т. д. У меня есть что-то вроде: $(document).ready(function(){ $('#photos_link').click(function() { select_tab('main', 'photos', $(this));...
321 просмотров

Как оставаться сухим при использовании шаблонов Javascript и ERB (Rails)
Я создаю приложение Rails, которое использует Pusher для использования веб-сокетов для отправки обновлений непосредственно клиенту. В JavaScript: channel.bind('tweet-create', function(tweet){ //when a tweet is created, execute the following...
5150 просмотров

Пользовательская проверка MVC 3 и DRY
Если я что-то не упустил (что очень возможно), мне кажется, что пользовательская проверка всегда нарушала DRY. Во всех примерах, которые я видел, даже с совершенно новой ненавязчивой проверкой клиента, представленной с MVC 3, мы должны создать код...
1224 просмотров
schedule 01.09.2023

Улучшить ненавязчивый javascript (и, возможно, использовать CoffeeScript) в приложении Rails
У меня есть приложение, которое использует Javascript для основных запросов Ajax, таких как автозаполнение и поиск в реальном времени. Например, я реализовал живой поиск следующим образом; Я заметил потенциальную проблему и хотел бы поговорить с...
1507 просмотров