Hacker News Digest

Тег: #specification

Постов: 2

Understanding Spec-Driven-Development: Kiro, Spec-Kit, and Tessl (martinfowler.com)

Спецификация, а не код, становится главным артефактом: разработка начинается с написания спецификации, которая затем используется для генерации кода. Это позволяет ускорить разработку, особенно с помощью AI, и повысить качество за счёт чётких требований. Однако есть риск, что спецификация устареет при изменении кода, что требует синхронизации. В целом, подход обещает повысить эффективность, но требует тщательного управления.

by janpio • 16 октября 2025 г. в 21:36 • 90 points

ОригиналHN

#spec-driven-development#kiro#spec-kit#tessl#artificial-intelligence#specification#plotly

Комментарии (15)

  • Обсуждение вращается вокруг "spec-anchored" подхода: от использования спецификаций как единственного источника правды до практических вопросов, таких как разделение труда между человеком и ИИ, и как спецификация может эволюционировать в процессе разработки.
  • Участники делятся опытом использования таких инструментов как SpecKit и Plotly Studio, подчеркивая, что спецификация должна быть лаконичной, но исчерпывающей, чтобы быть полезной.
  • Обсуждается, как спецификация может быть использована для управления проектом, но также вызывает тревогу, что без должного контроля она может стать неактуальной или чрезмерно сложной.
  • Поднимается вопрос о том, как спецификация должна эволюционировать вместе с проектом, и как она должна отражать реальные условия и требования, даже если эти требования еще не полностью ясны.
  • Заключается, что хотя инструменты могут и должны быть использованы для автоматизации части работы, важно оставить пространство для человеческого суждения и творчества, и что спецификация сама по себе не должна быть чрезмерно сложной или непрактичной.

Three ways formally verified code can go wrong in practice (buttondown.com)

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

Например, в случае с leftpad, многие реализации были формально верифицированы относительно свойства «длина результата равна максимуму из n и длины s», но это не гарантирует, что результат будет визуально корректным при использовании Unicode-символов.

Другая проблема — ошибки в самом инструменте верификации, хотя такие случаи редки.

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

Таким образом, формальная верификация полезна, но требует тщательного подхода к формулировке спецификаций и понимания их ограничений.

by todsacerdoti • 12 октября 2025 г. в 06:17 • 155 points

ОригиналHN

#formal-verification#specification#validation#verification#unicode#go

Комментарии (96)

  • Обсуждение показало, что формальная верификация кода не покрывает аппаратные сбои и ограничения окружения, а также не решает проблему валидации требований пользователя.
  • Участники подчеркнули, что доказательство корректности кода не защищает от ошибок в спецификации, а также не покрывает такие факторы как переполнение целочисленных типов и другие архитектурные ограничения.
  • Была затронута тема различия между верификацией (verification) и валидацией (validation), где первое касается соответствия кода спецификации, а второе — решаемости реальной задачи.
  • Обсуждение подняло вопрос о том, что формальные методы не покрывают такие аспекты как отказ оборудования, влияние космических лучей и другие факторы окружения, что делает их менее полезными в контексте безопасности.
  • Участники также обсудили, что даже при наличии формальной верификации, остаются риски, связанные с человеческим фактором, так как спецификация может не отражать реальные требования пользователя.