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

86
ООП сложно, потому что это не естественно?

Часто можно услышать, что ООП естественно соответствует тому, как люди думают о мире. Но я бы категорически не согласился с этим утверждением: мы (или, по крайней мере, я) концептуализируем мир с точки зрения отношений между вещами, с которыми мы сталкиваемся, но в центре внимания ООП находится...

86
Почему OCaml не более популярен?

Я всегда слышал, что C - это язык, который выбирают для встраиваемых систем, или что-то, что должно работать на максимальной скорости. Я никогда не развивал любовь к C, в основном потому, что я не люблю арифметику указателей, а язык едва ли стоит выше ассемблера. С другой стороны, языки ML являются...

86
Лучше ли документировать функции в заголовочном файле или исходном файле?

На языках, которые различают исходный файл и файл заголовка (в основном C и C ++), лучше документировать функции в заголовочном файле: (ворованный из CCAN ) /** * time_now - return the current time * * Example: * printf("Now is %lu seconds since epoch\n", (long)time_now().tv_sec); */ struct timeval...

86
В чем разница между государством и лицом без гражданства?

Книги и документация по MVC просто нагромождают использование терминов без учета состояния и состояния. Честно говоря, я просто не могу понять, о чем говорят книги. Они не приводят пример, чтобы понять какое-либо из этих состояний, вместо того, чтобы просто сказать, что HTTP не имеет состояния и с...

86
Какова история того, почему байты восемь бит?

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

86
Флаги предупреждения Clang для разработки Objective-C

Как программист C & Objective-C, я немного параноик с флагами предупреждения компилятора. Я обычно пытаюсь найти полный список флагов предупреждений для используемого мной компилятора и включать большинство из них, если только у меня нет веской причины не включать его. Лично я считаю, что это...

86
Имеют ли смысл комментарии TODO? [закрыто]

Я работаю над довольно большим проектом и получил задание сделать несколько переводов для него. Было множество этикеток, которые не были переведены, и пока я копался в коде, я нашел этот маленький кусочек кода //TODO translations Это заставило меня задуматься над смыслом этих комментариев для себя...

86
В чем разница между краевым случаем, угловым случаем, базовым случаем и пограничным случаем?

Я не носитель английского языка. На моем родном языке мне известны некоторые термины, используемые для обозначения проверенного условия, чтобы остановить рекурсию, и условия, проверенного на крайние, маловероятные или сверхпростые случаи. В английском я встречал термины «крайний случай», «угловой...

86
Насколько большим должен быть мой проект, чтобы я смог его протестировать? [закрыто]

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

86
Преимущества использования чистого JavaScript над JQuery

Каковы преимущества использования Javascript-only по сравнению с JQuery-only? У меня ограниченный опыт работы с JavaScript и JQuery. Я добавил биты и фрагменты каждого из них на HTML-страницы, но я в основном кодировал серверные вещи на других языках. Я заметил, что хотя теоретически вы можете...

86
Как бы вы отреагировали, если бы кто-то сказал вам, что ваш код - беспорядок?

Я хороший программист, или я так думал раньше. Я всегда люблю программировать. И я хочу узнать много нового о программировании, чтобы сделать меня лучшим программистом. Я изучал программирование в течение 1 года, а сейчас я работаю программистом почти 2 года. Короче говоря, у меня почти 3 года...

86
Почему внезапное увеличение числа отправителей Git на графике попконов Debian в 2010-01 году?

Почти в каждой статье, которую я прочитал 1, сравнивая Git и Mercurial, кажется, что у Mercurial лучшая UX командной строки, где каждая команда ограничена только одной идеей (в отличие от, скажем git checkout). Но в какой-то момент Git неожиданно стал очень популярным, и число отправителей Git на...

86
за против foreach против LINQ

Когда я пишу код в Visual Studio, ReSharper (да благословит его Бог!) Часто предлагает мне сменить цикл старой школы for на более компактную форму foreach. И часто, когда я принимаю это изменение, ReSharper делает шаг вперед и предлагает мне изменить его снова, в блестящей форме LINQ. Итак, мне...

86
Почему Алан Кей сказал: «Интернет был так хорошо сделан, но сеть была сделана любителями»?

ОК, так что я перефразировал. Полная цитата: Интернет был создан настолько хорошо, что большинство людей считают его природным ресурсом, подобным Тихому океану, а не тем, что создано человеком. Когда в последний раз технология с такими масштабами была настолько безошибочной? Сеть, по сравнению с...

86
Сможет ли UTF-8 поддерживать включение огромного инопланетного языка с миллионами новых персонажей?

Если произошло инопланетное вторжение, и мы были вынуждены поддерживать их языки во всех наших существующих компьютерных системах, разработан ли UTF-8 таким образом, чтобы учесть их возможно огромное количество символов? (Конечно, мы не знаем, есть ли у инопланетян языки на самом деле, говорят ли...

86
Помогут ли модульные тесты Citigroup избежать этой дорогой ошибки?

Я читал об этом snafu: ошибка программирования стоит Citigroup $ 7 млн ​​после того, как допустимые транзакции ошибочно принимались за тестовые данные в течение 15 лет . Когда система была представлена ​​в середине 1990-х годов, программный код отфильтровывал все транзакции, которым были присвоены...

86
Оценка затрат времени в устаревшей кодовой базе

Недавно я начал работать над проектом, в котором очень старое монолитное приложение переносится в архитектуру на основе микросервисов. Устаревшая кодовая база очень грязная («спагетти-код»), и часто, по-видимому, простая функция (например, названная «multiplyValueByTen») позже показывает себя как...

85
Является ли статика универсальным «злом» для модульного тестирования, и если да, то почему Resharper рекомендует его? [закрыто]

Я обнаружил, что существует только 3 способа статических зависимостей модульного тестирования (макет / заглушка) в C # .NET: Кроты TypeMock JustMock Учитывая, что два из них не бесплатны, а один не выпущен в версии 1.0, издеваться над статичными вещами не так уж и легко. Имеет ли это статические...

85
Когда вы принимаете решение о том, стоит ли работать в новой компании, какие у вас посредники? [закрыто]

Я знаю, что мы рассмотрели, какие вопросы вы должны задать о компании, прежде чем решите работать там . Но что вы делаете с ответами? Другими словами, что бы вы назвали нарушителем? Т.е. что вас так напугало бы в компании, что вы бы там не работали, даже если бы все остальное было здорово?...