2009-02-26 8 views
8

Bạn đã thực hiện chuyển đổi/ghi đè thành công phần mềm nào mà bạn đã tham gia? Những ngôn ngữ và khuôn khổ liên quan đến quá trình này ở đâu? Phần mềm được đề cập đến bao nhiêu? Cuối cùng, một trong hai điều đầu tiên bạn học được khi tham gia vào quá trình này là gì.Bạn đã thực hiện thành công việc chuyển đổi/ghi đè phần mềm nào?

này liên quan đến này question

Trả lời

3

tôi sẽ cho "sâu sắc nhất" ở đây:

  • Ported một mô phỏng 8080 viết bằng FORTRAN 77 từ một DECSystem-10 chạy TOPS-10 để một IBM 4381 mainframe chạy VM/CMS.
+0

+1 để thành công trong mục tiêu của bạn. –

0

Chuyển đổi mã C theo lý thuyết di động vào mã C theo lý thuyết di động trên kiến ​​trúc để hỗ trợ một sự thay đổi phần cứng mà tiết kiệm đô la công ty X trên một đơn vị.

Kích thước khác nhau - đây là nhu cầu chung và tôi đã thực hiện các dự án nhỏ và lớn.

Tôi đã học cách viết thêm mã C di động. Elegance là tuyệt vời, nhưng khi nói đến nó trình biên dịch sẽ chăm sóc hiệu suất, và mã nên đơn giản và di động nhất có thể.

2

Tôi viết lại 20.000 dòng Perl để sử dụng "sử dụng nghiêm ngặt" trong mọi tệp. Tôi đã phải thêm "của tôi" ở khắp mọi nơi nó cần thiết và tôi đã phải sửa chữa các lỗi đã được phát hiện trong quá trình này.

Điều lớn nhất tôi học được từ việc này là "Luôn luôn mất nhiều thời gian hơn bạn nghĩ".

Tôi phải làm cho nó được thực hiện cùng một lúc qua đêm để các lập trình viên khác sẽ không viết mã mới, không được mã hóa cùng một lúc. Tôi nghĩ nó sẽ diễn ra nhanh chóng, nhưng không, và tôi vẫn còn hack vào lúc 6 giờ sáng hôm sau.

Tôi đã hoàn thành và đăng ký trước khi mọi người khác bắt đầu làm việc!

0

Tôi đang viết lại hệ thống quản lý dự án trong nhà cho một mô hình MVC chuẩn hơn. Trong ngăn xếp LAMP (PHP) và tôi gần mốc 1.

Những điều tôi đã học được từ đó hiện tại là chương trình cảm thấy đơn giản như thế nào ngay từ đầu và tôi đã cố gắng không thêm sự phức tạp cho đến khi tôi phải làm.

Ví dụ là tôi lập trình tất cả các chức năng đầu tiên (như tôi là một người dùng admin) và sau đó khi được sắp xếp ra, thêm sự phức tạp của việc có hạn chế (mức sử dụng vv)

+0

Chưa thành công nhưng ... tất cả là tốt nhất! – MarkJ

0

tôi chuyển/thiết kế lại/viết lại một chương trình MS-DOS C++ 30.000 dòng vào một chương trình Java Swing có độ dài tương tự nhưng đầy đủ tính năng và có thể sử dụng được.

Tôi đã học được không bao giờ thực hiện một công việc khác liên quan đến C++ hoặc Java.

+0

Bài tập Cobol mới của bạn sẽ như thế nào? – AShelly

+0

Bạn đã đọc sai. Tôi nói rằng tôi sẽ không * làm một công việc khác mà tôi phải nhại bằng ngôn ngữ lập trình crappy. :-) Và đó là một quyết định tuyệt vời. – Ken

0

Tôi đã chuyển một ứng dụng Powerbuilder máy chủ ứng dụng khách, một vài trăm màn hình có giá trị, vào một ứng dụng ASP.NET (C#).

Do các vấn đề hiệu suất và bảo trì, tôi đã có hơn năm trước đã di chuyển một tấn SQL nhúng trong các tập lệnh Powerbuilder và vào các thủ tục được lưu trữ.

Mặc dù điều này sẽ khiến bạn phải suy nghĩ, có rất nhiều logic nghiệp vụ trong cơ sở dữ liệu, điều đó có nghĩa là ứng dụng Powerbuilder tương đối "nhẹ" và khi chúng tôi xây dựng giao diện .Net, nó có thể tận dụng lợi thế của SQL codebase và có rất nhiều chức năng đã được xây dựng và thử nghiệm.

Không nói tôi khuyên bạn nên xây dựng các ứng dụng theo cách đó, nhưng nó chắc chắn đã làm việc với lợi thế của chúng tôi trong trường hợp này.

0

Chúng tôi đã có công cụ tạo mã trong khung ứng dụng đã được sử dụng để đọc trong các tệp dữ liệu dựa trên văn bản, Khoảng 20 ứng dụng khác đã sử dụng nó.

Chúng tôi muốn sử dụng tệp dữ liệu XML thay vì tệp dựa trên văn bản có cấu trúc. Mã ban đầu khá lỗi thời và khó duy trì. Chúng tôi đã thay thế công cụ này bằng cách kết hợp các tập lệnh XSLT và một thư viện tiện ích. Đối với thư viện tiện ích, chúng ta có thể sử dụng một số mã trong công cụ cũ.

Kết quả là tất cả 20 ứng dụng giờ đây có thể sử dụng định dạng tệp dựa trên văn bản lỗi thời hoặc định dạng dựa trên XML mới. Chúng tôi cũng đã cung cấp một công cụ tạo chuyển đổi đã chuyển đổi các tệp dữ liệu cũ thành các tệp dữ liệu XML mới.

Sau khi đưa ra một hoặc hai bản phát hành, chúng tôi đã quyết định rằng chúng tôi sẽ không còn hỗ trợ định dạng dựa trên văn bản cũ nữa và mọi người đều có thể chuyển đổi dữ liệu của họ thành XML.

Chúng tôi hầu như không phải làm chuyển đổi sử dụng,

1

Tôi viết lại một ứng dụng java web lớn đến một ứng dụng ASP.Net cho một công ty bất động sản vì nhiều lý do.

Điều lớn nhất tôi học được là, cho dù tính năng tầm thường của hệ thống ban đầu, nếu hệ thống không có trong hệ thống thứ hai thì khách hàng cho rằng viết lại là lỗi. Quản lý kỳ vọng là mọi thứ khi viết hệ thống mới.

Đây là lý do lớn nhất viết lại rất khó: có vẻ như khách hàng dễ dàng ("Chỉ cần làm lại những gì tôi đã có và thêm một vài điều.").

0

Đã chuyển đổi ứng dụng công ty chính từ chuẩn C++ sang chuẩn C++. Chúng tôi đã có một đội ngũ bán hàng trị giá hàng triệu đô la để làm cho nó hoạt động trên AIX, và sau khi xem xét nó, chúng tôi quyết định chuyển đổi sang chuẩn C++ sẽ dễ dàng như chuyển đổi sang C++ truyền thống của IBM.

Tôi không biết số dòng, nhưng mã nguồn chạy đến hàng trăm megabyte.

Chúng tôi đã sử dụng các công cụ Unix chuẩn để thực hiện việc này, bao gồm vi và các trình biên dịch các loại.

Mất vài tháng. Hầu hết các bản sửa lỗi là các bản sửa lỗi đơn giản, được trình biên dịch ghi lại và hầu như được cố định về cơ học. Một số người trong số họ phức tạp hơn nhiều.

Tôi nghĩ rằng takeaway chính của tôi là: Đừng quá khôn ngoan quá với mã trong một ngôn ngữ chưa được chuẩn hóa, hoặc có thể có những thứ thay đổi theo cách bất ngờ. Chúng tôi đã phải làm rất nhiều việc đào bới trong một số sự thích ứng khéo léo/lạm dụng các luồng C++.

0

Mười năm trước, tôi đã quản lý một nhóm chuyển đổi hệ thống CAD từ DOS sang Windows. Phiên bản DOS sử dụng home-brew libraries để vẽ đồ họa, phiên bản Windows được sử dụng MFC. Phần mềm là khoảng 70.000 dòng mã C tại thời điểm chuyển đổi. Điều quan trọng nhất mà chúng tôi học được trong quá trình này là sức mạnh trừu tượng. Tất cả các thói quen không di động cụ thể cho từng thiết bị được phân lập trong một vài tệp.Do đó, tương đối dễ dàng để thay thế các cuộc gọi đến thư viện dựa trên DOS mà sẽ rút ra bằng cách truy cập trực tiếp vào bộ đệm khung với các cuộc gọi API Windows. Tương tự, đối với đầu vào, chúng tôi chỉ thay thế vòng lặp sự kiện đã kiểm tra các sự kiện bàn phím và chuột, với vòng lặp sự kiện Windows tương ứng. Chúng tôi đã tiếp tục chính sách tách biệt mã không di động (mã Windows) từ phần còn lại của hệ thống, nhưng chúng tôi chưa thấy điều này đặc biệt hữu ích. Có lẽ một ngày nào đó chúng tôi sẽ chuyển hệ thống sang Mac OS X và cảm ơn một lần nữa.

1

Điều thú vị nhất đối với tôi, tôi nghĩ, là port of MAME to the iPod. Đó là một trải nghiệm học tập tuyệt vời với phần cứng được nhúng và tôi đã làm việc với rất nhiều người tuyệt vời. Official site.

0

Một số. Nhưng tôi đề cập đến một.

Đó là công cụ tạo mô hình hiệu suất. Phần delphi 1, phần turbo pascal. Nó cần viết lại khác nó sẽ không tồn tại. Vì vậy, chúng tôi bắt đầu như một nhóm 2, nhưng chỉ có tôi sống sót đến cùng. Và tôi đã sẵn sàng trước thời hạn ;-).

Một số điều chúng ta đã làm:

  • Làm cho nó multimodel. Bản gốc có rất nhiều hình cầu. Tôi đã xóa tất cả chúng và đa mô hình dễ dàng thích nghi.
  • Thông báo lỗi mở rộng. Nhấp vào tin nhắn và nhận trợ giúp.
  • Rất nhiều biểu đồ và sơ đồ. Tất cả có thể nhấp để xem chi tiết.
  • Mô phỏng. Thay đổi thông số theo thời gian và xem cấu hình hiện tại đủ dài bao lâu.

Chúng tôi thực sự làm sạch và trả lại tiền cuối cùng. Một trải nghiệm học tập lớn như vậy.

0

Viết lại hệ thống cho một công ty xử lý hoá đơn hợp pháp - hệ thống ban đầu là một hình thức đơn giản của VB không có ý tưởng về nguyên tắc OO tốt - mọi thứ được trộn lẫn với nhau. HTML đã làm SQL, và SQL đã viết HTML. Một phần lớn của nó là một công cụ quy tắc tùy chỉnh sử dụng một cái gì đó như XML cho các quy tắc.

Hai đội đã viết lại, mất khoảng 9 tháng. Một nhóm đã thực hiện giao diện người dùng web và luồng công việc phụ trợ, trong khi nhóm khác (mà tôi đã tham gia) đã viết lại công cụ quy tắc. Hệ thống mới được viết bằng C# và được thực hiện kiểm tra trước. Thêm các quy tắc mới vào hệ thống khi chúng tôi thực hiện xong là rất đơn giản và tất cả đều có thể kiểm chứng được. Trên đường đi, chúng tôi đã làm những việc như chuyển đổi công ty từ VSS sang SVN, triển khai tích hợp liên tục, tự động triển khai và hướng dẫn các nhà phát triển khác cách thực hiện TDD và các thực hành Scrum/XP khác.

Kỳ vọng quản lý là rất quan trọng thông qua dự án. Có một khách hàng hiểu biết về phần mềm rất hữu ích.

Có kết hợp các thử nghiệm quy mô lớn (end-to-end) cùng với các bài kiểm tra tích hợp và đơn vị toàn diện đã giúp tấn.

0

Chuyển đổi vBulletin được viết bằng PHP thành C#/Asp.NET. Tôi khá quen thuộc với cả hai ngôn ngữ, nhưng PHP là tay xuống người chiến thắng để xây dựng phần mềm đó. Nỗi đau lớn nhất ở phía sau là cần phải làm một C# tương đương với PHP của eval() để gọi các mẫu.

Đó là thách thức đầu tiên của tôi khi cố gắng thực hiện chuyển đổi. Tôi đã học được rằng tôi cần nhiều kinh nghiệm hơn với C# và việc viết nó từ đầu chỉ là một con đường dễ dàng hơn đôi khi.

0

Tôi đã chuyển đổi một quy trình xây dựng động hoàn toàn được viết bằng Perl thành C# /.Giải pháp Net sử dụng một động cơ công việc mà một đồng nghiệp đã phát triển (vẫn đang trong giai đoạn thử nghiệm - vì vậy tôi phải thực hiện một số cải tiến). Điều đó đã cho tôi sự phản đối để thêm chức năng không an toàn và không thành công cho quá trình xây dựng.

Trước khi bạn yêu cầu - không - nền tảng công việc của microsoft không thể được sử dụng vì bạn không thể thay đổi động một quy trình trong thời gian chạy.

Những gì tôi học được:

  • ghét Perl-phát triển
  • quá trình tối ưu hóa bằng cách sử dụng WF-engine
  • không an toàn và fail-over chiến lược
  • một số C chỉnh #;)

Cuối cùng, nó chứa khoảng 5k - 6k (bao gồm cả động cơ wf) nguồn gốc LoC từ 3 200 tệp Perl LoC. Nhưng nó đã được vui vẻ - và tốt hơn nhiều cuối cùng;)

0

Đã gửi mô phỏng được viết bằng Fortran 77 (mặc dù được viết vào thập niên 90) sang C/Java vì bản gốc chỉ làm việc trên các tập dữ liệu nhỏ. Tôi đã học cách yêu thương ký hiệu O lớn sau nhiều lần giải thích tại sao chỉ cần di chuyển toàn bộ bảng dữ liệu vào bộ nhớ khi bắt đầu chương trình sẽ không được mở rộng.