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

93
Люди в неанглоязычных странах пишут код по-английски? [закрыто]

Я слышал, что (коллеги) сказали, что каждый «кодирует по-английски» независимо от того, откуда он. В это трудно поверить, однако я не удивлюсь, если для большинства языков программирования поддерживаемый набор символов будет относительно узким. Вы когда-нибудь работали в стране, где английский не...

93
Функциональное программирование против ООП [закрыто]

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

93
Как позиционировать себя как разработчика программного обеспечения? [закрыто]

Я заметил, что это частая проблема среди молодых людей из технических областей, таких как наша. В начале нашей карьеры мы просто не знаем, как продать себя нашим работодателям, и случайный парень № 57 (который является программистом, но не так хорош, как вы - технически) в итоге получает повышение...

93
В обзорах кода должен ли рецензент всегда представлять решение проблем? [закрыто]

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

93
Почему провал модульных тестов считается плохим?

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

92
Почему ООП сложно? [закрыто]

Когда я начал использовать объектно-ориентированный язык (Java), я просто стал «крутым» и начал писать код. Я никогда не задумывался об этом до недавнего времени, прочитав много вопросов об ООП. Общее впечатление, которое я получаю, это то, что люди борются с этим. Поскольку я не думал об этом как...

92
Почему работает TDD? [закрыто]

Разработка через тестирование (TDD) сегодня очень важна. Я часто вижу его рекомендованным в качестве решения для широкого круга проблем здесь, в Programmers SE и других местах. Интересно, почему это работает. С инженерной точки зрения это озадачивает меня по двум причинам: Подход "написать тест +...

92
Как объяснить непрофессионалу, почему разработчик не должен быть прерван во время написания кода? [закрыто]

Если вы просто рассмотрите вторую часть моего вопроса: «Почему разработчик не должен быть прерван во время написания кода», этот вопрос неоднократно обсуждался умными людьми. Хек, даже соучредитель SO Джоэл Спольски, написал в своем блоге сообщение о том, как «попасть в зону» и «быть выбитым из...

92
Почему C не считается «объектно-ориентированным» языком?

Кажется, что у С есть свои квазиобъекты, такие как «структуры», которые можно рассматривать как объекты (на высоком уровне, который мы обычно думаем). Кроме того, сами файлы C в основном являются отдельными "модулями", верно? Тогда разве модули тоже не похожи на «объекты»? Меня смущает, почему C,...

92
Как мотивировать сотрудников писать юнит-тесты? [закрыто]

Мы работаем над крупным продуктом, который выпускается около 5 лет. Кодовая база ... эээ ... работает. Не очень хорошо, но это работает. Новые функции добавляются в производство и тестируются с небольшим контролем качества. Исправлены ошибки и т. Д. Но никто, кроме меня, не пишет юнит-тесты. Никто...

92
Является ли хорошей идеей спроектировать архитектуру, полагая, что классы пользовательского интерфейса могут быть заменены интерфейсом командной строки?

На странице 25 Code Complete говорится, что неплохо иметь возможность легко заменить обычные классы пользовательского интерфейса на один из командной строки. Зная его преимущества для тестирования, как насчет проблем, которые он может принести? Окажется ли эта дополнительная работа действительно...

92
Почему в Java вообще нет оптимизации для хвостовой рекурсии?

Из того, что я прочитал: причина в том, что нелегко определить, какой метод на самом деле будет вызываться, поскольку у нас есть наследование. Однако почему в Java, по крайней мере, нет оптимизации хвостовой рекурсии для статических методов и не реализован надлежащий способ вызова статических...

91
В чем преимущество выбора кодировки ASCII перед UTF-8?

Все символы в ASCII могут быть закодированы с использованием UTF-8 без увеличения объема памяти (для обоих требуется один байт памяти). UTF-8 имеет дополнительное преимущество поддержки символов помимо «ASCII-символов». Если это так, почему мы когда-нибудь выберем кодировку ASCII вместо UTF-8? Есть...

91
Что делает C таким популярным в эпоху ООП? [закрыто]

Я много пишу на C и C ++, но не ожидал, что C будет вторым по популярности языком, немного уступая Java. Индекс сообщества программистов TIOBE Мне любопытно, почему в этом веке ООП C все еще так популярен? Обратите внимание, что 4 из 5 популярных языков программирования являются «современными»...

91
Желательно ли просить сотрудников создавать «рабочие» учетные записи GitHub?

Я переместил все репозитории Git нашей компании на GitHub, и теперь я хочу добавлять сотрудников в проекты. Поскольку у большинства сотрудников уже есть личные учетные записи GitHub, мне интересно, стоит ли мне просить их создать рабочую учетную запись GitHub. Причина, по которой я думаю сделать...

91
Какие функциональные возможности позволяет динамическая типизация? [закрыто]

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

91
Является ли современный C ++ заменой C #? Microsoft подталкивает разработчиков к внедрению C ++? [закрыто]

Я слышал о современной популярности C ++ и некоторых разговорах о переходе на C ++ с C # или других C-подобных языков. Я знаю о возможностях C ++ 11, но мне бы хотелось услышать ваш опыт, особенно от разработчиков, которые перешли с C # на C ++. Что еще более важно, подталкивает ли Microsoft...

91
Есть ли причина, по которой тесты не пишутся inline с кодом, который они тестируют?

Недавно я немного читал о грамотном программировании , и это заставило меня задуматься ... Хорошо написанные тесты, особенно спецификации в стиле BDD, могут лучше объяснить, что делает код, чем проза, и имеют большое преимущество проверка собственной точности. Я никогда не видел тесты, написанные в...

91
TDD Red-Green-Refactor и если / как проверить методы, которые становятся частными

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

91
Есть ли термин для неосуществленного кода, который был написан для кого-то еще, чтобы заполнить?

Иногда в упражнении по программированию, генерации шаблонов, наведении руководящих указаний на задачи, которые должен выполнять младший программист, и т. Д., Случается, что программисту представляется невыполненный код и ему говорят «заполнить пробел». Например, модульный тест, который может быть...