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

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

10
В чем преимущество формата с прямым порядком байтов?
Процессоры Intel (и, возможно, некоторые другие) используют формат хранения с прямым порядком байтов для хранения. Мне всегда интересно, почему кто-то захочет хранить байты в обратном порядке. Есть ли у этого формата какие-либо преимущества перед форматом с прямым порядком байтов?

11
Должен ли я прекратить использование термина C / C ++?
Я понимаю, что C и C ++ - это разные языки, но когда я изучал C ++, мне всегда говорили, что C - это подмножество C ++ или C ++ - это C с классами. И это было совершенно верно до появления C ++ x0, C ++ 11 (или современного …
140 c++  c  terminology  c++11 

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

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

11
Есть ли такая вещь, как иметь слишком много юнит-тестов?
Мне было поручено написание модульных тестов для существующего приложения. После завершения моего первого файла у меня есть 717 строк тестового кода для 419 строк исходного кода. Будет ли это соотношение неуправляемым по мере увеличения покрытия кода? Мое понимание модульного тестирования состояло в том, чтобы протестировать каждый метод в классе, чтобы …
139 unit-testing  tdd 

15
Почему языки с управлением памятью, такие как Java, Javascript и C #, сохранили ключевое слово `new`?
newКлючевые слова в языках , как Java, JavaScript и C # создают новый экземпляр класса. Этот синтаксис, по-видимому, унаследован от C ++, где newон используется специально для выделения нового экземпляра класса в куче и возврата указателя на новый экземпляр. В C ++ это не единственный способ создания объекта. Вы также …

14
Когда уместно не проводить модульное тестирование?
Я работаю в небольшой компании в качестве индивидуального разработчика. На самом деле я единственный разработчик в компании. У меня есть несколько (относительно) крупных проектов, которые я написал и регулярно поддерживаю, и ни у одного из них нет тестов для их поддержки. Когда я начинаю новые проекты, я часто задаюсь вопросом, …
139 unit-testing  tdd 

2
Соглашение об именах файлов Python?
Я видел эту часть PEP-8 https://www.python.org/dev/peps/pep-0008/#package-and-module-names Мне не ясно, относится ли это к имени файла модуля / класса / пакета. Если бы у меня был один пример каждого, должны ли имена файлов быть строчными и подчеркивания, если это уместно? Или что-то другое?

7
Как поиск вписывается в интерфейс RESTful?
При разработке интерфейса RESTful семантика типов запросов считается жизненно важной для проекта. GET - список коллекции или получить элемент PUT - заменить коллекцию или элемент POST - Создать коллекцию или элемент УДАЛИТЬ - Ну, ну, удалить коллекцию или элемент Тем не менее, это не похоже на понятие «поиск». Например, при …

25
Это нормально для людей не работать?
После окончания колледжа меня наняли младшим программистом чуть больше года назад. Я быстро заметил, что я на несколько градусов быстрее, чем все остальные программисты; кажется, потому что я просто не трачу время "в общем". Однако большинству других людей, похоже, нравится смотреть в потолок, просматривать YouTube, Facebook и случайные веб-сайты и …
137 productivity 

10
На развитие глубоких знаний в области программирования
Время от времени я вижу вопросы о крайних случаях и других странностях в переполнении стека, на которые легко отвечают такие люди, как Джон Скит и Эрик Липперт, демонстрирующие глубокое знание языка и многих его тонкостей, как этот: Вы можете подумать, что для того, чтобы использовать foreachцикл, коллекция, которую вы перебираете, …
136 code-quality 

13
Шаблоны дизайна не одобряются?
У меня была беседа с одним из наших старших разработчиков, который работает в этом бизнесе уже 20 лет. Он очень хорошо известен в Онтарио по блогам, которые он пишет. Странная вещь состоит в том, что он сказал мне: он сказал, что есть кусок кода, с которым кошмарно работать, потому что …

10
Когда стоит форсировать сборку мусора?
Итак, я читал вопрос о том, как заставить сборщик мусора в C # запускать, когда почти все ответы одинаковы: вы можете сделать это, но не должны - за исключением некоторых очень редких случаев . К сожалению, никто не уточняет, что такое такие случаи. Можете ли вы сказать мне, по какому …

17
Лучше ли возвращать NULL или пустые значения из функций / методов, где возвращаемое значение отсутствует?
Я ищу рекомендацию здесь. Я борюсь с тем, лучше ли возвращать NULL или пустое значение из метода, когда возвращаемое значение отсутствует или не может быть определено. Возьмите следующие два метода в качестве примера: string ReverseString(string stringToReverse) // takes a string and reverses it. Person FindPerson(int personID) // finds a Person …

8
Что С ++ делает лучше, чем D?
Недавно я изучал D и начинаю знакомиться с языком. Я знаю, что он предлагает, я еще не знаю, как все использовать, и я не знаю много о D идиомах и так далее, но я учусь. Мне нравится D. Это хороший язык, который в некотором роде является огромным обновлением C, и …

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