Программная инженерия

Q & A для профессионалов, преподавателей и студентов, работающих в жизненном цикле разработки систем

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

7
Зачем разрабатывать внутренние библиотеки для внутренних приложений?
Мне трудно понять, почему вы должны разрабатывать внутренние библиотеки, которые будут использоваться исключительно для разработки внутренних приложений. Я ценю, что если я хочу использовать программное обеспечение, написанное кем-то за пределами организации, тогда они могут прислать мне свои заголовочные файлы и файлы .a или .so, и я могу просто связать его …
10 libraries 

4
Включить ссылку на соответствующую документацию в сообщении об ошибке?
Мы создаем коммерческую библиотеку и примеры кода, которые используются внешними разработчиками. У нас есть (закрытая, доступная для зарегистрированных пользователей) документация, в которой подробно объясняется, как использовать библиотеку. Многие из разработчиков являются новичками, поэтому встречается много элементарных ошибок. Уместно ли включать ссылки на документацию в журнал ошибок? Каковы возможные недостатки? Я …

4
Переработка функции, возвращающей целочисленный код, который представляет множество различных состояний
Я унаследовал некоторый ужасный код, который я включил короткий пример ниже. Есть ли название для этого конкретного анти-паттерна? Какие рекомендации по рефакторингу это? // 0=Need to log in / present username and password // 2=Already logged in // 3=Inactive User found // 4=Valid User found-establish their session // 5=Valid User …

3
Применяется ли принцип разделения интерфейсов к конкретным методам?
Поскольку принцип сегрегации интерфейса предполагает, что ни одного клиента не следует заставлять зависеть от методов, которые он не использует, поэтому клиент не должен реализовывать пустой метод для своих методов интерфейса, в противном случае этот метод интерфейса должен быть помещен в другой интерфейс. Но как насчет конкретных методов? Должен ли я …

3
Как обрабатывать побочные эффекты в CRQS при воспроизведении событий?
Говорят, что в CQRS легко исправить ошибку, вы просто повторно развертываете и затем воспроизводите события. Но что, если одно из событий должно привести к тому, что внешняя система, не находящаяся под вашим контролем, «отправит товар» клиенту, если вы просто воспроизведите события, товар будет отправлен дважды. Как вы решаете это?

2
Решение проблем, которые идут с двоичной функцией assertEquals (ожидается, актуально)
После многих лет ковбойского кодирования, я решил взять книгу о том, как писать код хорошего качества. Я читаю «Чистый код» Роберта Сесила Мартина. В главе 3 (функции) есть раздел о двоичных функциях. Вот выдержка из книги. Даже очевидные двоичные функции вроде бы assertEquals(expected, actual)проблематичны. Сколько раз вы поместили фактическое, где …
10 functions 

6
Что такое простой процесс проектирования системы ООП перед ее кодированием?
Всякий раз, когда мне требовалось построить проект, мне всегда удавалось построить его, не заранее разработав план или проект, а после того, как сначала написал необходимый класс, конкретизировав весь проект, создавая его снизу вверх. Теперь я знаю, что это не правильный способ создания программного обеспечения, но мне нелегко обернуть голову вокруг …

6
Является ли разделение большинства классов на поля данных только классами и только классы методов (если это возможно) хорошим или антишаблонным?
Например, класс обычно имеет члены класса и методы, например: public class Cat{ private String name; private int weight; private Image image; public void printInfo(){ System.out.println("Name:"+this.name+",weight:"+this.weight); } public void draw(){ //some draw code which uses this.image } } Но после прочтения принципа единой ответственности и открытого закрытого принципа, я предпочитаю разделить …

3
Изучение языка программирования, специально разработанного для этой компании [закрыто]
Закрыто . Этот вопрос нуждается в деталях или ясности . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Добавьте детали и проясните проблему, отредактировав этот пост . Закрыто 2 года назад . Зачем кому-то разрабатывать свой собственный язык, чтобы использовать его только внутри этой фирмы, если у …

2
Методы параметризации против глобальных переменных
У меня очень простой вопрос, который преследует меня некоторое время, когда мой код начинает расти. Должны ли параметры заменяться глобальными переменными при прохождении длинных маршрутов вызовов вложенных функций? Я понимаю, что глобальная среда может сделать состояние программы непредсказуемым, потому что многие функции могут изменять общие переменные, но, тем не менее, …

4
Существует ли стандарт для документирования архитектуры высокого уровня программы?
Я разработчик-любитель, и все мои программы до сих пор были достаточно просты, чтобы их можно было документировать в коде. При чтении кода было ясно, что я делаю с теми или иными действиями (моим стандартным тестом было просмотреть код через 6 месяцев и понять все при первом чтении - и у …

6
Что делать с командой разработчиков, которая голодает? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 3 года назад . Отстойно быть на критическом пути обычного разработчика, особенно если вы опоздали. Когда вы …

3
Инъекция зависимости: Должен ли я создать класс Car, содержащий все его части?
У меня есть много автомобилей в моем приложении C ++, все они содержатся в RaceTrack. Каждый автомобиль состоит из сотен частей. Каждая часть зависит от какой-то другой части или двух. Я прочитал много SO вопросов о DI и книге Марка Симанна, и похоже, что я не должен определять класс Car …

2
Каков предполагаемый или целевой размер организации для крупномасштабных схваток (LeSS) и масштабируемой гибкой структуры (SAFe)?
Руководство по Скраму определяет единицу, состоящую из Владельца продукта, Команды разработчиков из 3-9 участников и 1 Мастера Скрама для примерно от 5 до 11 участников. Я видел случаи, когда у Владельца продукта может быть вспомогательный персонал или у команды может не быть специального Scrum Master, чтобы немного изменить это число, …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.