Вопросы с тегом «clean-code»

Термин «чистый код» используется для описания компьютерного программного кода, который является кратким, простым для понимания и четко выражает намерение программиста. Вопросы с этим тегом касаются процесса написания чистого кода или рефакторинга старого «грязного» кода в чистый код.

6
Как избежать бесконечно повторяющихся одинаково неоптимальных проектов?
Поэтому, вероятно, как и многие, я часто сталкиваюсь с головными болями, связанными с проблемами проектирования, в которых, например, есть какой-то шаблон / подход к проектированию, который, кажется, интуитивно подходит к проблеме и имеет желаемые преимущества. Очень часто есть некоторая оговорка, которая затрудняет реализацию шаблона / подхода без какой-либо обработки, которая …

1
Проблемы с пониманием того, как чистый код выглядит в реальной жизни
В настоящее время я читаю и работаю над «Чистым кодом: Справочник по мастерству гибкого программного обеспечения» Роберта Мартина. Автор говорит о том, как функция должна делать только одну вещь и, следовательно, быть относительно короткой. Конкретно Мартин пишет: Это означает, что блоки внутри операторов if, операторов else, операторов while и т. …
10 clean-code 

2
Избегайте геттеров и сеттеров, отображающих информацию о пользователях
Фон Я читаю «Чистую книгу кодов», и, в частности, я работаю над художественными объектами Kata, как банковский счет, и я застрял на этом правиле: Девятое правило художественных объектов - мы не используем геттеры или сеттеры. Это кажется довольно забавным, и я согласен с этим принципом. Более того, на странице 98-99 …

3
Чистый код и гибридные объекты и зависть к функциям
Так что я недавно сделал несколько серьезных рефакторингов в своем коде. Одной из основных вещей, которые я пытался сделать, было разделение моих классов на объекты данных и рабочие объекты. Это было вдохновлено, среди прочего, этим разделом Чистого кода : Гибриды Эта путаница иногда приводит к неудачным гибридным структурам данных, которые …

5
Может ли чисто функциональное решение этой проблемы быть таким же чистым, как императив?
У меня есть упражнение на Python следующим образом: многочлен задается в виде набора коэффициентов, так что степени определяются индексами, например: (9,7,5) означает 9 + 7 * x + 5 * x ^ 2 написать функцию для вычисления ее значения для данного х Так как в последнее время я занимаюсь функциональным …

7
Это плохой стиль, чтобы избыточно проверить состояние?
Я часто попадаю на позиции в моем коде, где я снова и снова проверяю определенное условие. Я хочу привести небольшой пример: предположим, что есть текстовый файл, который содержит строки, начинающиеся с «a», строки, начинающиеся с «b», и другие строки, и я на самом деле хочу работать только с первыми двумя …

4
Шаблон проектирования для обработки ответа
Большую часть времени, когда я пишу некоторый код, который обрабатывает ответ для определенного вызова функции, я получаю следующую структуру кода: пример: это функция, которая будет обрабатывать аутентификацию для системы входа class Authentication{ function login(){ //This function is called from my Controller $result=$this->authenticate($username,$password); if($result=='wrong password'){ //increase the login trials counter //send …

6
Какой код должен быть включен в абстрактный класс?
В последнее время меня беспокоит использование абстрактных классов. Иногда абстрактный класс создается заранее и работает как шаблон того, как будут работать производные классы. Это означает, более или менее, что они предоставляют некоторые функциональные возможности высокого уровня, но не учитывают некоторые детали, которые должны быть реализованы производными классами. Абстрактный класс определяет …

1
Что означает «НАКЛОН» в комментарии?
Я читаю « Чистый код » Роберта С. Мартина, и эта фраза TILTнеобъяснимым образом появляется в некоторых примерах кода. Пример (это на Java, кстати): ... public String errorMessage() { switch (status) { case ErrorCode.OK: // TILT - Should not get here. return ""; case ErrorCode.UNEXPECTED_ARGUMENT: return "Unexpected argument"; case ErrorCode.MISSING_ARGUMENT: …

7
Я делаю свои занятия слишком гранулированными? Как следует применять принцип единой ответственности?
Я пишу много кода, который включает в себя три основных шага. Получить данные откуда-то. Преобразуйте эти данные. Положите эти данные куда-нибудь. Я обычно заканчиваю тем, что использую три типа классов - вдохновленные их соответствующими шаблонами дизайна. Фабрики - построить объект из какого-то ресурса. Посредники - использовать фабрику, выполнить трансформацию, затем …

6
Как уменьшить переключатель в операторе switch?
Поэтому я делаю метод для создания линии приветствия на основе двух человек из базы данных. Существует четыре параметра: два имени ( name1и name2) и два пола ( genderи gender2). Для каждой гендерной комбинации у меня есть разные результаты. Например: если пол 1 M(мужчина) и пол 2 также M, результат должен …

3
Где я должен поместить методы, которые делают запрос Http для получения данных от веб-службы в разработке iOS?
У меня есть приложение Model Car в моем iOS-приложении, где его параметры, такие как имя, год, значение и т. Д., Извлекаются из веб-службы, чтобы заполнить список данными об автомобилях. Куда мне поместить метод, который асинхронно отправляется на сервер и возвращает массив машин (этот метод уже преобразует JSON в массив Car)? …

7
Проверка, возвращает ли метод значение false: присваивать результат временной переменной или помещать вызов метода непосредственно в условное выражение?
Является ли хорошей практикой вызывать метод, который возвращает значения true или false в операторе if? Что-то вроде этого: private void VerifyAccount() { if (!ValidateCredentials(txtUser.Text, txtPassword.Text)) { MessageBox.Show("Invalid user name or password"); } } private bool ValidateCredentials(string userName, string password) { string existingPassword = GetUserPassword(userName); if (existingPassword == null) return false; …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.