この質問はWebアプリケーションから生まれましたが、他の種類のアプリケーションにも当てはまるはずです。私はMVCを使用しています。
アプリケーションコード(モデル、ビュー、コントローラー、フォーム、ヘルパーなど)とライブラリコード(外部ライブラリと、自己作成のデータベースマッパー、jsonコンバーターなどを備えた内部ライブラリ)の両方があります。
アプリケーションとライブラリコードの間に通常どこに線を引くのだろうか(両方が内部で書かれている場合)?
一部のライブラリコードはプロジェクト固有のものになりますが、それでも少し抽象化されています。