나는 아직 작성된 응용 프로그램에 대한 미래의 영향을 최소화하고자합니다. 제 3 자 제품을 피하기 위해 노력하고 있으며 심지어 운영 체제의 특정 호출을 피합니다. 누구나 응용 프로그램을 교정 할 다른 방법을 제안 할 수 있습니까? 이 아이디어는 10 년 또는 20 년 만에 주요 부분을 다시 작성할 필요가 없으며 유지 관리 (버그 수정) 만 수행해야 할 것입니다.향후 응용 프로그램 교정을위한 몇 가지 옵션은 무엇입니까?
답변
프로그램을 (최신 OS에서) 해당 기간 동안 계속 실행하려면 순수한 ANSI C (또는 C++)로 작성해야합니다. 그 밖의 다른 것들은 일부 종류의 조정이 필요하며, 앞으로 10-20 년 동안 어떤 일이 일어날 지 아무도 모릅니다. 말했다
, 여기에 이러한 종류의 문제를 최소화하기 위해 몇 가지 팁은 다음과 같습니다- 이상한 종속성을 피하십시오. 라이브러리에 의존하려면 (또는 10-20 년 중 5 번 이상 생존 할 가능성이 높음) 또는 적어도 오픈 소스가되도록해야합니다. 따라서 직접 포크 할 수 있습니다 필요하다면.
- OS 관련 호출을 피하십시오. 이는 boost 또는 Qt 또는 glib 또는 what-have-you -와 같은 래퍼 라이브러리를 사용할 수 있지만 그면에서 호환성 문제가 발생할 가능성이 높아집니다.
- 모든 것을 문서화하십시오. 사실, 아무리 노력해도이 프로그램은 호환성 수정 및 버그 수정이 필요하며 기능 추가도 필요합니다. 따라서 15 년이 지난 가난한 유지 보수 프로그래머가 더 쉬워졌습니다. :)
64 비트를 염두에두고 작성하십시오. 현재 타사 종속성 중 많은 부분이 64 비트를 지원하지 않기 때문에 문제가 있습니다.
128 비트를 써야하지 않습니다;) j/k – esac
오늘날의 컴퓨터에서 실행되는 약 10 년과 20 년 된 프로그램을 찾아 내서 왜 계속 실행하는지, 그리고 왜 그들이 가치가 있는지를 알아보십시오. 나는 종종 C와 FORTRAN으로 쓰여지는 가끔씩 사용되는 많은 계산 집약적 인 콘솔 기반의 어플리케이션을 다른 어플리케이션에 의해 호출합니다. 앱에 많은 GUI가 있다면 수십 년 후에도 여전히 가치가있을 것이라고 확신합니까? 아마도 UI 패러다임이 변화하고 발전함에 따라 UI를 대체 할 수있는 방식으로 사용자 인터페이스를 핵심 기능과 분리하는 것을 고려해보십시오. 시스템을 매우 모듈 방식으로 작성하는 경우 가치를 제공하는 모듈은 유지할 수 있지만 분명히 쓸모없는 모듈은 대체 할 수 있습니다.
자동화 테스트도 도움이됩니다. 귀하의 신청서에는 "교정본"이 붙지는 않지만, 사안이 바뀌면 해결해야 할 사항에 대해 알게 될 것입니다.
10 년 동안 거의 유지 보수가 필요없는 응용 프로그램을 빌드하는 가장 좋은 방법은 빌드되었고 아직 10 년 전부터 실행중인 시스템을 살펴 보는 것입니다.
내 경험에 비추어 볼 때, 주요 업그레이드가 필요하지 않은 시스템의 대부분은 10 년 전에 배포 된 것과 동일한 하드웨어에서 실행하고 동일한 인터페이스를 사용합니다.
메인테이너는 무어의 법칙 또는 사용성 향상으로 인해 성능 향상을 수년 동안 거의 유지 보수하지 않기로 결정했습니다.
내가 개발하는 많은 응용 프로그램이주기 (예 : 매년)로 실행됩니다. 작업을 계속하기 위해 내가해야 할 가장 중요한 일은 날짜 또는 날짜 범위를 하드 코딩하지 않는 것입니다.예 : 범위 물론
의 올해
DateSubmitted BETWEEN year(now()) AND DATEADD(year,1,year(now()))
에 대한
year(now())
, 이들은 단지 예입니다.
- 1. redis db 보안을 유지하기위한 몇 가지 옵션은 무엇입니까?
- 2. 응용 프로그램은 몇 가지 메시지
- 3. Windows 응용 프로그램 작성시 몇 가지 지침/힌트가 필요합니다.
- 4. 몇 가지 요청을하면 레일즈 응용 프로그램이 멈춤
- 5. 내가 몇 가지 코드를 다음과 같이이 쓰고있는 응용 프로그램에서 코코아 응용 프로그램
- 6. 아키텍처를 테스트하는 몇 가지 방법은 무엇입니까?
- 7. 몇 가지 질문은 autofac
- 8. 몇 가지 질문
- 9. 몇 가지 옵션을
- 10. 몇 가지 기능이 풍부한 Visual Web GUI 데이터 그리드 컨트롤 옵션은 무엇입니까?
- 11. PGP - GnuPG - 몇 가지 질문
- 12. 스크롤 영역을 만드는 몇 가지 기술은 무엇입니까?
- 13. Velocity의 몇 가지 고급 개념은 무엇입니까?
- 14. 인체 모델링을위한 몇 가지 해결책은 무엇입니까
- 15. PersistentPerl 또는 SpeedyCGI의 몇 가지 대안은 무엇입니까?
- 16. 프로세서가 코드를 최적화하는 몇 가지 트릭은 무엇입니까?
- 17. 몇 가지 양식에서 이벤트 제출
- 18. 캐싱에 대한 몇 가지 질문
- 19. 서브 클래스로의 몇 가지 uibutton
- 20. jqtouch에 관한 몇 가지 질문
- 21. 블룸 필터 구현에 관한 몇 가지 질문입니다.
- 22. Python의 '가져 오기'기능에 관한 몇 가지 질문
- 23. cakephp - 하나의 프레임 워크, localhost 하위 도메인에있는 몇 가지 응용 프로그램
- 24. 특정 위치에서 실행하도록 iPhone 응용 프로그램을 배포하는 몇 가지 방법
- 25. 몇 가지 Lucene 관련 질문
- 26. qt의 몇 가지 단점이있는 문제들
- 27. 구문 분석을위한 몇 가지 팁
- 28. 그릿에 관한 몇 가지 질문
- 29. 실행 몇 가지 명령을 동시에
- 30. DLR에 대한 몇 가지 질문
왜 이것이 '프로그래밍 관련 없음'으로 태그 지정되었는지 알 수 없습니다. 소프트웨어 설계 결정은 시스템의 수명에 영향을 미칩니다. –