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

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

2187
Какие технические детали должен учитывать программист веб-приложения, прежде чем делать сайт общедоступным?

Что нужно учесть программисту, реализующему технические детали веб-приложения, перед тем как сделать сайт общедоступным? Если Jeff Atwood можно забыть о HttpOnly печенье , сайтмепов , и запрос подделки межсайтовых все в том же месте , какая важная вещь я мог бы забыть, а? Я думаю об этом с точки...

1388
Какой алгоритм хеширования лучше всего подходит для уникальности и скорости?

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

1055
Откуда пришло понятие «только одно возвращение»?

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

1050
Я заканчиваю со степенью информатики, но я не чувствую, что я знаю, как программировать

Я заканчиваю со степенью информатики, но я вижу сайты, такие как Stack Overflow, и поисковые системы, такие как Google, и не знаю, где бы я даже начал писать что-то подобное. В течение одного лета у меня была возможность работать разработчиком для iPhone, но я чувствовал, что в основном склеиваю...

876
Какая самая эффективная вещь, которую вы сделали, чтобы улучшить свои навыки программирования?

Оглядываясь назад на мою карьеру и жизнь программиста, я смог улучшить свои навыки программирования множеством разных способов: чтение кода, написание кода, чтение книг, прослушивание подкастов, просмотр скринкастов и многое другое. Мой вопрос: что вы сделали наиболее эффективно, что улучшило ваши...

694
Мой босс решил добавить поле «человек виноват» в каждый отчет об ошибке. Как я могу убедить его, что это плохая идея?

В одном из последних шагов «WTF» мой босс решил, что добавление поля «Person To Blame» в наш шаблон отслеживания ошибок увеличит ответственность (хотя у нас уже есть способ привязать ошибки к функциям / историям). Мои аргументы о том, что это снизит моральный дух, увеличит количество указаний...

652
Как ответить, когда вас просят оценить?

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

569
Является ли использование «utf8 = ✓» более предпочтительным, чем «utf8 = true»?

Недавно я видел несколько URI, содержащих параметр запроса "utf8 = ✓". Мое первое впечатление (после размышлений «ммм, выглядит круто») состояло в том, что это можно использовать для обнаружения нарушенной кодировки символов. Итак, это лучший способ решить потенциальные проблемы с кодировкой...

554
Значит синглтоны плохие, тогда что?

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

544
Во что встроено программное обеспечение Mars Curiosity Rover?

Марс Curiosity марсоход успешно приземлился, и один из промо - видео «7 минут ужаса» хвастается там быть 500000 строк кода. Это сложная проблема, без сомнения. Но это много кода, конечно, за этим стоит довольно большое программирование. Кто-нибудь знает что-нибудь об этом проекте? Я могу только...

521
Плюсы и минусы реакции Facebook против веб-компонентов (полимер)

Каковы основные преимущества React от Facebook перед предстоящей спецификацией веб-компонентов и наоборот (или, может быть, сравнение между яблоками и яблоками было бы более значительным по сравнению с библиотекой Google Polymer )? Согласно этому докладу об ЕС и домашней странице React, основными...

509
Почему ИТ-индустрия не может реализовать крупные, безошибочные проекты так быстро, как в других отраслях?

Посмотрев серию MegaStructures от National Geographic , я был удивлен, насколько быстро завершаются крупные проекты. После того, как предварительные работы (дизайн, спецификации и т. Д.) Выполнены на бумаге, сама реализация огромных проектов занимает всего несколько лет, а иногда и несколько...

470
Я унаследовал 200 000 строк кода для спагетти - что теперь?

Я надеюсь, что это не слишком общий вопрос; Я мог бы действительно использовать некоторые опытные советы. Я недавно работаю в качестве единственного «Инженера SW» в довольно небольшом магазине ученых, которые провели последние 10-20 лет, собирая обширную базу кода. (Он был написан практически на...

450
Преодоление медленного решения проблем из-за увеличения знаний о том, что может пойти не так [закрыто]

Это беспокоило меня в течение некоторого времени, и я очень ценю вклад других профессионалов. Краткая справка: я начал программировать, когда мои родители купили мне мой первый компьютер в 1988 году (в 14 лет, сейчас мне 39 лет). Я прошел несколько других карьерных путей, прежде чем окончательно...

448
Мой клиент хочет, чтобы я записал видео о том, как я разрабатываю его программный продукт

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

432
Следует ли считать UTF-16 вредным?

Я собираюсь спросить, что, вероятно, является довольно спорным вопросом: «Следует ли считать одну из самых популярных кодировок, UTF-16, вредной?» Почему я задаю этот вопрос? Сколько программистов знают о том факте, что UTF-16 на самом деле является кодировкой переменной длины? Под этим я...

431
Я менеджер. Как я могу улучшить рабочие отношения и общение с программистами? [закрыто]

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

427
Как мне создать свой собственный язык программирования и компилятор для него [закрыто]

Я разбираюсь в программировании и сталкивался с такими языками, как BASIC, FORTRAN, COBOL, LISP, LOGO, Java, C ++, C, MATLAB, Mathematica, Python, Ruby, Perl, JavaScript, Assembly и так далее. Я не могу понять, как люди создают языки программирования и разрабатывают компиляторы для этого. Я также...

410
Должен ли я намеренно прервать сборку при обнаружении ошибки в производстве?

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