簡體   English   中英

如何證明使用腳本語言作為項目的一部分

[英]How to justify using a scripting language as part of a project

我有一個特定的項目,我想使用腳本語言+ C,或者作為100%Java解決方案的替代方案。

該程序使遺留系統適用於其他現代系統。

基本上,我對可以使用的語言幾乎沒有選擇。 我有C / C ++,Java 1.4,我也為這個環境編譯了Lua。

該程序確實“屏幕抓取”並且必須處理很多字符串。 這部分代碼變化很大。

我公司的大多數開發人員使用C,所以 - 我的原始設計是用C語言編寫一些部分,並使用Lua處理字符串並頻繁更改的部分。 我被告知'你必須證明你使用腳本語言是合理的。' 所以我使用100%Java重新設計了我的設計,並被告知 - Java沒有足夠的性能。 你應該用C做完整件事。

我不是在控制激光或進行圖像處理 - 只是一些屏幕刮擦。 除了C之外,我仍然必須提供使用任何東西的理由 - 那么我可以提供什么理由呢?

評估每個解決方案需要多少時間(時間==金錢$)。 這應該有所幫助。

您可以使用Perl,Python或其他腳本語言來破解原型,並展示它可以輕松快速地完成。

嵌入式腳本語言的一大優點是能夠在程序運行時檢查和修改數據。
至於速度,IMO Lua是游戲開發者中的頭號選擇,因為它快速而輕盈。

(你可以立刻嵌入Lua,你甚至都不會注意到它;)

您需要根據C(時間/金錢)中的實施成本與更高級別腳本語言中的成本來證明這一點。 我會把幾個例子/場景放在一起來展示潛在的節省。

聽起來你在相當保守的環境中工作。 請注意,人們可能會擔心引入他們不了解或沒有經驗的未知技術。因此,您可能希望a)介紹一些眾所周知且記錄在案的內容b)最初不使用任何深奧的功能。 希望你能證明他們可以在這方面做出回報,然后繼續撿起來。

我的建議:

1)想一想在刮擦過程中需要做的幾個字符串操作。 用C表示,然后用Lua表示。 我在一點上寫了一些例子,它們是30到40行的C,而Lua是1-2。

2)嘗試在Lua中快速構建系統的某些方面,然后在C中進行比較和對比。 只有您可以確定您的經理是否可以接受此原型制作時間。

3)在你的團隊中尋找一個志同道合的盟友(或兩三個)來展示實例和談話要點。 如果您需要進行設計審核,他們可以幫助您。

4)准備好接受雖然你可能有一個非常好的設計解決方案,但它可能不適合你的組織。 不是每個人都想學習或嘗試新事物。 如果一群“敵人”必須使用或維護你的項目,那么你可能會讓自己面臨更多麻煩而不是它的價值。

在這種情況下,您還可以使用更高的健壯性進行參數化,因為C中的字符串處理很麻煩並且經常導致編程錯誤(緩沖區溢出等)

理由(如果它是真的)是Java對你正在做的事情更快。 (是嗎? - 就像Martin說的那樣,嘗試用Python編寫原型並評估它需要多長時間。)

以來:

該程序確實“屏幕抓取”並且必須處理很多字符串

Perl可能是最好的選擇,只要你有它作為選擇。

我認為,由於您的團隊擁有現有的C專業知識,成本角度可能總是會失去,因此節省的費用會被學習新語言的成本所抵消。

對我來說更具吸引力(作為過去不得不做出這些權衡的人)將是對變化作出反應的靈活性和速度。 必須編譯和部署C,而您可以在10秒內將新的python腳本放入您的環境中。 如果您抓取的頁面正在發生變化,那么您的開發和部署環境似乎應該與該靈活性相匹配,這意味着腳本語言。

順便說一句,“Java慢一點”的論點只能被卡在C中的人所驅使。這種情況已經持續了很長一段時間,並且有無數的獨立測試可以證明這一點。

與正常的設計 - 開發 - 部署周期相比,通過允許您的應用程序在運行時加載和運行一些腳本,演示添加新(或用戶自定義)的簡易性。

無論您使用哪種語言,解析字符串,HTML,XML等都很慢。

您的問題有很多免費組件,因此工具成本不是問題。

字符串解析和屏幕抓取是您對解析要求的理解不斷變化並需要很長時間才能穩定的問題之一。 因此,您需要能夠編寫屏幕抓取軟件,嘗試,失敗和學習,並且您需要能夠快速完成此操作。

在任何一種情況下,你最好的賭注是Perl和Ruby。 Perl是字符串解析的傳奇。 Ruby也很好,它有一個屏幕抓取庫,如( scrAPI )。

Perl或Ruby的商業理由是低成本(免費工具),並大大縮短了開發時間。 使用腳本語言可以快速制作和測試刮削軟件的更改,直到您正確完成為止。 如果您可以使用C / C ++在10分鍾內從代碼更改到測試,您通常可以在大約一分鍾內使用Perl / Ruby執行相同操作。 長期來看,這可以節省50%的人工成本。

未來的可擴展性。

如果您采用腳本語言,您可以在將來以更低的成本擴展您的項目。

組態。 Lua被創建為配置/數據描述語言。 您的程序也可以通過這種方式運行,使用C內核,然后通過lua接口進行配置。 您可以配置的可配置性取決於您,但它可能會隨時間而變化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM