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

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

10
Что такое правильное использование downcasting?
Понижение означает преобразование из базового класса (или интерфейса) в подкласс или листовой класс. Примером снижения может быть, если вы приведете System.Objectк другому типу. Даункастинг непопулярен, может быть, пахнет кодом: доктрина объектно-ориентированного подхода предпочитает, например, определять и вызывать виртуальные или абстрактные методы, а не унижать. Какие, если таковые имеются, хорошие и …

7
Насколько важно сделать уровень обслуживания?
Я начал создавать приложение в 3 слоя (DAL, BL, UI) [оно в основном обрабатывает CRM, некоторые отчеты о продажах и инвентарь]. Коллега сказал мне, что я должен перейти к шаблону сервисного уровня, что разработчики пришли к сервисному шаблону из своего опыта, и это лучший подход для разработки большинства приложений. Он …

10
Почему С преобладал над Паскалем? [закрыто]
Насколько я понимаю, в 1980-х, а возможно, и в 1990-х, Паскаль и Си были в значительной степени непосредственными, как производственные языки. Является ли окончательная кончина Паскаля только из-за пренебрежения Борланда Дельфи ? Или что-то еще, например, невезение или что-то не так с Паскалем (есть надежды на его возрождение?). Меня интересуют …

16
Как избежать логических ошибок в коде, когда TDD не помог?
Недавно я писал небольшой кусочек кода, который по-человечески укажет, сколько лет событию. Например, это может указывать на то, что событие произошло «Три недели назад», «Месяц назад» или «Вчера». Требования были относительно ясны, и это был идеальный случай для разработки, основанной на тестировании. Я писал тесты один за другим, реализуя код …

9
В чем смысл правила оптимизации программы 90/10?
Согласно Википедии, правило оптимизации программы 90/10 гласит, что «90% времени выполнения программы тратится на выполнение 10% кода» (см. Второй абзац здесь ). Я действительно не понимаю этого. Что именно это значит? Как можно потратить 90% времени выполнения только на выполнение 10% кода? А как насчет остальных 90% кода? Как они …

10
Почему языки требуют скобок вокруг выражений, когда они используются с «if» и «while»?
Языки , как C, Java и C ++ все требуют скобки вокруг всего выражения при использовании в if, whileили switch. if (true) { // Do something } в отличие от if true { // Do something } Это кажется мне странным, потому что круглые скобки излишни. В этом примере trueэто …

3
Почему фреймы не поддерживаются в HTML5, а не iFrames?
Почему фреймы не поддерживаются в HTML5, а не iFrames? В конце концов, между ними почти нет различий. Во многих случаях использование любого из них даст одинаковый результат (простите, если я ошибаюсь)?
67 html5 

9
В какой момент я могу сказать, что «выучил» язык?
За несколько лет программирования я играл со всеми, от Ruby до C ++. Я сделал все, от простого изучения базового синтаксиса (Ruby) до завершения нескольких крупных (для меня) проектов, которые расширили мои возможности языком. Учитывая это разнообразие (и тот факт, что истинное изучение языка никогда не прекращается), когда я могу …

10
Стоит ли брать на себя обязательство исключительно для устранения некритических опечаток?
Если я сталкиваюсь с некритической опечаткой в ​​коде (скажем, с ошибочным апострофом в операторе print (error)), стоит ли делать коммит для устранения этой ошибки или ее просто нужно оставить в покое? В частности, мне любопытно сопоставить суммирование журнала коммитов со значением разрешения этих некритических опечаток. Я склоняюсь к их решению. …

16
Сколько свободы должен иметь программист в выборе языка и структуры?
Я начал работать в компании, которая в первую очередь ориентирована на C #. У нас есть несколько человек, которым нравятся Java и JRuby, но большинство программистов здесь любят C #. Меня наняли, потому что у меня большой опыт создания веб-приложений, и потому что я склоняюсь к новым технологиям, таким как …

8
Как некоторые языковые сообщества (например, Ruby и Python) смогли предотвратить фрагментацию, в то время как другие (например, Lisp или ML) не смогли этого сделать?
Термин «Лисп» (или «Лисп-подобный») является зонтиком для множества разных языков, таких как Common Lisp, Scheme и Arc. В других языковых сообществах, как и в ML, наблюдается аналогичная фрагментация Тем не менее, и Ruby, и Python сумели избежать этой участи, когда инновации происходили чаще в реализации (например, PyPy или YARV), а …

6
Почему в запросе SQL выбирается перед From? [закрыто]
Это то, что меня очень беспокоило в школе. Пять лет назад, когда я изучал SQL, я всегда задавался вопросом, почему мы сначала указываем поля, которые хотим, а затем, откуда мы их хотим. Согласно моей идее, мы должны написать: From Employee e Select e.Name Так почему же норма говорит следующее? Select …
67 sql  history  syntax 

11
Как я могу определить количество технической задолженности, существующей в проекте?
Кто-нибудь знает, есть ли какой-то инструмент для обозначения числа технических долгов кодовой базы, в качестве метрики кода? Если нет, кто-нибудь знает алгоритм или набор эвристики для него? Если ни одна из этих вещей не существует до сих пор, я бы заинтересовался идеями о том, как начать такую ​​вещь. То есть, …

10
Чистый читаемый код против быстрого трудно читаемого кода. Когда пересекать черту?
Когда я пишу код, я всегда стараюсь сделать мой код максимально чистым и читабельным. Время от времени наступает момент, когда вам нужно пересечь черту и перейти от красивого чистого кода к более уродливому коду, чтобы сделать его быстрее. Когда это нормально, чтобы пересечь эту линию?

7
Чем IntelliJ лучше, чем Eclipse? [закрыто]
Я знаю, что были такие вопросы, как Ваш любимый редактор / IDE? , но никто из них не ответил на этот вопрос: зачем тратить деньги на IntelliJ, когда Eclipse бесплатен? Я лично большой поклонник IntelliJ, но я действительно не пробовал Eclipse. Я использовал IntelliJ для проектов, которые были Java, JSP, …
67 java  ide  eclipse  intellij 

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