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

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

13
Как мне отредактировать цепочку операторов if-else if в соответствии с принципами чистого кода дяди Боба?
Я пытаюсь следовать рекомендациям дяди Боба по чистому коду и, в частности, держать методы короткими Я не могу сократить эту логику, хотя: if (checkCondition()) {addAlert(1);} else if (checkCondition2()) {addAlert(2);} else if (checkCondition3()) {addAlert(3);} else if (checkCondition4()) {addAlert(4);} Я не могу удалить elses и, таким образом, разделить все это на более …

6
Объяснение того, как осуществляется доступ к языкам программирования на стороне сервера
Насколько я понимаю, любой язык программирования общего назначения можно использовать для разработки веб-сайта на стороне сервера. Правильно ли я считаю, что серверу просто необходим какой-то интерфейс, такой как CGI, чтобы сервер и язык программирования работали вместе? Если так, то почему некоторые языки программирования (такие как php) более популярны, чем другие?

5
Поддержка двух отдельных версий программного обеспечения из одной и той же кодовой базы в управлении версиями
Допустим, я пишу две разные версии одного и того же программного обеспечения / программы / приложения / скрипта и храню их под контролем версий. Первая версия является бесплатной «Базовой» версией, а вторая - платной «Премиум», которая использует кодовую базу бесплатной версии и дополняет ее несколькими дополнительными дополнительными функциями. Любые новые …

8
Неужели за последние 20 лет не было чего-то такого, что обеспечило бы огромный выигрыш в разработке программного обеспечения? [закрыто]
В книге «Нет серебряной пули» Фред Брукс делает различные прогнозы о будущем программной инженерии, которые лучше всего суммируются: Не существует единой разработки ни в технологии, ни в технике управления, которая сама по себе обещала бы даже одно повышение производительности, надежности, простоты. Его аргумент очень убедителен. Брукс писал в 1986 году: …

5
Образец Строителя: Когда терпеть неудачу?
При реализации паттерна «Строитель» я часто путаюсь с тем, когда строить не удается, и мне даже удается каждые несколько дней занимать разные позиции по этому вопросу. Сначала несколько объяснений: Под ранним сбоем я подразумеваю, что создание объекта должно завершиться неудачей, как только будет передан недопустимый параметр. Так что внутри SomeObjectBuilder. …

13
Зашифрованный контент в играх
У меня возникла идея использовать шифрование, чтобы пользователи не могли выяснить контент в моей программе за пределами самой программы. Подобно тому, как пользователи могут найти текстуры, которые никогда не использовались в игре, предназначенные для того, чтобы быть частью какого-то пасхального яйца при прохождении по данным игры. Это может, например, испортить …
45 encryption 

3
Стиль кодирования для слабовидящих программистов [закрыто]
Я слабовидящий. С очками я вижу достаточно хорошо, чтобы двигаться, но при размере шрифта, с которым мне комфортно работать, я вижу только около 15 строк по 100 символов за раз. Это повлияло на мой стиль кодирования. Я пишу короткие функции Мой код имеет тенденцию получать хорошие отзывы, потому что эти …

6
Насколько необходимо следовать методам защитного программирования для кода, который никогда не станет общедоступным?
Я пишу Java-реализацию карточной игры, поэтому я создал специальный тип Collection, который я называю Zone. Все методы модификации Java Collection не поддерживаются, но в Zone API есть метод move(Zone, Card), который перемещает карту из заданной зоны в себя (выполняется с помощью методов, закрытых для пакетов). Таким образом, я могу гарантировать, …

2
Какую реализацию Common Lisp использовать? [закрыто]
Кажется, есть непосредственная проблема с началом разработки в Common Lisp: выбор реализации. Что следует учитывать и какой вес он должен иметь при рассмотрении реализации CL? Должно ли оно соответствовать стандарту ANSI? Должно ли оно поддерживаться SLIME? В некоторых реализациях отсутствуют хорошие библиотеки, документация и т. Д.?

4
Почему так много пространств имен начинаются с com
Я заметил, что многие компании используют пространства имен «обратное доменное имя», и мне любопытно, откуда возникла эта практика и почему она продолжается. Происходит ли это просто из-за заученной практики или есть выдающаяся архитектурная концепция, которую я мог бы здесь упустить? Также обратите внимание на такие вопросы, как: https://stackoverflow.com/questions/189209/do-you-really-use-your-reverse-domain-for-package-naming-in-java, что-то вроде …

8
Что должно быть разрешено внутри геттеров?
Я попал в интересный интернет-спор о методах получения и установки и инкапсуляции. Кто-то сказал, что все, что они должны сделать - это присваивание (установщики) или доступ к переменным (получатели), чтобы сохранить их «чистыми» и обеспечить инкапсуляцию. Прав ли я, что это полностью разрушило бы цель иметь в первую очередь геттеры …

11
Как архитектор программного обеспечения, я должен сосредоточиться на анализе журналов и исправлении ошибок других?
После выпуска (в конце 2005 года) я работал в той же компании, что и инженер по программированию на С ++. Год назад меня повысили до должности архитектора программного обеспечения, но я все больше и больше занимаюсь квалификацией и исправлением ошибок, поддержкой уровня 2. 50% моего времени провел в Notepad ++, …

9
В чем разница между «синтаксисом» и «синтаксическим сахаром»
Фон На странице Википедии о синтаксическом сахаре говорится: В информатике синтаксический сахар - это синтаксис в языке программирования, предназначенный для облегчения чтения или выражения. Это делает язык «более сладким» для использования людьми: вещи могут быть выражены более четко, более кратко или в альтернативном стиле, который некоторые могут предпочесть. Я не …


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

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