Дефрагментация мозга. Софтостроение изнутри
Қосымшада ыңғайлырақҚосымшаны жүктеуге арналған QRRuStore · Samsung Galaxy Store
Huawei AppGallery · Xiaomi GetApps

автордың кітабынан сөз тіркестері  Дефрагментация мозга. Софтостроение изнутри

Павел Штерн
Павел Штерндәйексөз келтірді2 апта бұрын
Таким образом, собрав из кучи микросхем устройство, мы уверены, что оно будет работать: • согласно таблицам истинности; • с заданной тактовой частотой. Собрав же из компонентов программу, мы можем только: • приблизительно и с некоторой вероятностью оценивать время отклика на выходе; • в большинстве случаев ограничиться выборочным тестированием, забыв о полноте. Если вам говорят: «Пришло время собранных из кубиков программ», будьте в курсе ограничений технологии. Очень уж далеки программные компоненты от электронных кубиков
Комментарий жазу
Павел Штерн
Павел Штерндәйексөз келтірді2 апта бұрын
На практике программист применит допустимую эвристику и будет тестировать, например, только несколько значений (один миллион, ноль, случайная величина из диапазона) для нескольких типовых конвертаций из 100 возможных, дополнительно проверяя допустимую точность значений на входе. При этом формальный показатель покрытия модульными тестами по-прежнему будет 100%… Но это ещё не всё
Комментарий жазу
Павел Штерн
Павел Штерндәйексөз келтірді2 апта бұрын
Малозначимым в глазах руководства может оказаться не только проект, но и обслуживание крупного продукта. Весьма показательный уровень программирования в одной социальной сети можно было оценить по пришедшему от их имени письму следующего содержания: «Ваши фотографии были перенесены на наш новый фотохостинг. Всего было перенесено 0 фотографий». Для того чтобы вставить в код программы рассылки проверку IF > 0, нужно, видимо, иметь не только недюжинные умственные способности, но и дополнительную квалификацию, равно как и понимание сути выполняемой задачи. С другой стороны, да и чёрт с ними, с сотнями тысяч отправленных бесполезных писем. Одной массовой рассылкой больше, одной меньше, не правда ли?
Комментарий жазу
Надежда Т.
Надежда Т.дәйексөз келтірді2 ай бұрын
Если соискание касается технического профиля, в каждом описании опыта работы упирайте на технологии, если управленческого — на периметр ответственности, если аналитического — на разнообразие опыта и широту кругозора
Комментарий жазу
Алексей Брыксин
Алексей Брыксиндәйексөз келтірді8 жыл бұрын
Если же программист уже после обнаружения ошибки говорит: «А у меня она в этом месте работает...», лучше сразу его уволить, чтобы не мучился. Это проза жизни, также относящаяся к коллекции моих практик.
Комментарий жазу
Алексей Брыксин
Алексей Брыксиндәйексөз келтірді8 жыл бұрын
Переходя к техническим терминам, программист описывает задачу в терминах логической модели, представляющей собой набор сущностей, их атрибутов, операций и связей между ними. Язык создан на основе XML, поэтому делать описания можно непосредственно руками в обычном текстовом редакторе. Рис. 19. Общая схема работы с «лампой» и «джиннами»
Комментарий жазу
Алексей Брыксин
Алексей Брыксиндәйексөз келтірді8 жыл бұрын
На рынке уже имеется немало продуктов типа «software factory», если вы наберёте в поисковике эти ключевые слова, то получите множество ссылок на концепции и частные реализации. Например, неплохое руководство, хотя и привязанное к собственным средствам, составили в IBM[24]. Чтобы не утомлять вас текстами академического характера, в следующей главе я просто приведу пример одной фабрики под названием Genie Lamp (http://genielamp.sourceforge.net), применяемой непосредственно в различных моих проектах. Несмотря на то что подход УМР я использую с конца 1990-х годов, свести многие частные решения в несколько более общее удалось только за последние 2–3 года. Лень — двигатель прогресса, особенно когда надоедает переписывать генераторы кода и подстраивать относительно стандартные модели под частные требования.
Комментарий жазу
Алексей Брыксин
Алексей Брыксиндәйексөз келтірді8 жыл бұрын
Нетрудно заметить, что двунаправленный подход в CASE-инструментарии в большей степени является мощным средством автоматизации отдельных программистов, так как обладает рядом ограничений: • как правило, инструмент привязан к языкам и платформам; • технология не выходит за рамки разработки конкретных программ и подсистем. То есть слои системы и архитектура остаются за рамками процесса; • коллективная работа над моделями одновременно с кодом практически невозможна: приходится делить модели на независимые части, например подсистемы, разрабатываемые одним программистом;
Комментарий жазу
Алексей Брыксин
Алексей Брыксиндәйексөз келтірді8 жыл бұрын
Качество кода во многом зависит от степени повторного использования, поэтому приведу простой и доступный способ проверки того, не занимается ли ваша команда программистов копированием готовых кусков вместо их факторизации. Для этого регулярно делайте сжатый архив исходников, например zip с обычным коэффициентом компрессии, и оценивайте динамику роста его размера относительно количества строк. Если размер архива растёт медленнее, чем количество строк, это означает рост размера кода за счёт его копирования.
Комментарий жазу
Алексей Брыксин
Алексей Брыксиндәйексөз келтірді8 жыл бұрын
Дж. Фокс [2] выводит из своего опыта проектной работы в IBM важную мысль, что большой ошибкой является привлечение к процессу внутреннего тестирования и обеспечения качества посредственных программистов. По его мнению, компетентность специалиста в этом процессе должна быть не ниже архитектора соответствующей подсистемы. Действительно, ведь оба работают примерно на одном уровне, просто один занят анализом, а другой — синтезом.
Комментарий жазу