成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

可以編寫代碼的代碼:代碼生成的利與弊

新聞 前端
代碼生成的當前狀態是無處不在的(2019年春季)。REST API的數量激增,導致在過去十年中針對各種編程語言和環境開發的API客戶端生成器種類繁多。

 

[[281681]]

代碼生成的當前狀態

代碼生成的當前狀態是無處不在的(2019年春季)。

如今,代碼生成發生在軟件堆棧的每一層,

  • 包括Java庫(如swagger CodeGen),
  • 最新的交叉編譯器/編譯器(如針對JavaScript應用程序的Babel)
  • 以及全棧生成器(如Starter StackGen(tm))

REST API的數量激增,導致在過去十年中針對各種編程語言和環境開發的API客戶端生成器種類繁多。

就像某種巨大的數字Turducken一樣,REST API及其生成的客戶端似乎能夠將任何事物連接到任何事物。

因此,讓我們看一下代碼生成管理中涉及的火雞,鴨子和小雞……

1.代碼重寫

自動編碼的一種廣泛形式是代碼重寫-用于將一種語言版本的語法轉換為另一種語言,有時甚至完全轉換為另一種語言。

例如,諸如Scala之類的語言實際上是將您的代碼重寫為與Java兼容的代碼。

著名的奇怪的Lombok項目基本上在您鍵入時重寫Java代碼,生成幻像方法,因此您可以專注于出色。

就像Babel一樣,任何優秀的JavaScript開發人員都可以證明“編譯器”是如何將您的高級ES2017重寫為已使用了10年的,與瀏覽器兼容的舊版JavaScript,因此您可以編寫現代代碼,而不必擔心瀏覽器的行為方式。

2.基于模板的生成

React生態系統在創建基于模板的應用程序框架(包括React的“ create-react-app” CLI命令)方面特別活躍。

在整個軟件行業中,其他基于模板的代碼生成也很普遍。HTML模板和流行的新靜態站點生成器通常利用流行的胡須或車把模板引擎來利用模板解析。

在服務器模板引擎(例如Velocity)以及基于服務器的胡須和車把實現中,吐出了預渲染的源文件(例如HTML和越來越多的JavaScript)。

3.運行時動態代碼

模板并不是生成代碼的唯一方法。

通過自省,例如Java和Java Reflection API等語言以及Ruby Metaprogramming,運行代碼可以是“自我感知”的,一旦您的代碼自我感知,構建真正動態應用程序的選項就會真正擴展。

在Starter,我們使用Java構建了StackGen生成器引擎,這意味著我們能夠使用便捷的JavaPoet庫來動態構建Java類文件,其中包括在運行時動態合成的功能。有趣的是,這些類可以在內存中編譯并由類加載器加載,而無需寫入磁盤。

他們說Java不是動態語言!

這種類型的動態生成的代碼令人興奮,因為它不僅節省了我們手動編寫代碼的時間和金錢,而且還提供了機會在運行時在應用程序中創建響應行為,而無需人工干預(可能基于AI決策)使我們的應用程序和數字體驗比以往更具吸引力和實用性。

但是生成的代碼很爛!

不幸的是,軟件行業的歷史上充斥著代碼生成器,無代碼開發工具,所見即所得前端生成器的示例,并被似乎從未消亡的古老平臺吐出的普遍的加密源代碼恐怖所困擾(我正在尋找在您的DreamWeaver Ultradev上還是應該說Drumbeat 2000 ?!)。

當機器充滿了晦澀的技術和混亂的變量名時,誰想要處理機器吐出的代碼?生成的昔日代碼只是令人沮喪和悲傷,而您想要建立的任何東西都沒有。

幸運的是,時代變了

在2019年,工具和軟件開發的最佳實踐已經發展到人類和機器可以真正在中間相遇的地步。諸如APIcur.io,StackGen和Microsoft PowerApps之類的代碼生成器經過發展,可以克服過去的局限性,同時將所有代碼生成技術中的最佳功能結合到現代開發工具中。

代碼生成的優點

  • 無需手動編碼=更少的錯誤
  • 實現更大,更復雜的模式可能節省大量時間
  • 簡單應用和PoC的快速上市周期
  • 穩定的基礎架構意味著更少的時間浪費
  • CI / CD友好,可以將代碼生成作為步驟添加到任何CI管道或開發工作流程中
  • 端到端生成消除了處理多個源文件和文件類型時的錯誤
  • 可以將新功能集成到基礎模板中,以在單個構建中跨大型代碼庫實現
  • 但這并不是說代碼生成沒有缺點。

代碼生成的缺點

  • 并非所有應用程序都將從代碼生成中受益
  • 與手動選擇每個代碼庫,模式和編碼樣式相比,代碼生成更加不靈活
  • 對基礎模板的更改將推廣到所有生成的文件,因此更改必須高度兼容并經過全面測試
  • 生成的代碼必須在代碼庫中與開發人員代碼仔細隔離- 存在覆蓋開發人員代碼的風險,并且應該可以在不影響任何現有代碼的情況下進行重新生成
  • 代碼生成會增加一些復雜性-例如,要真正了解生成器并與之合作,您需要了解生成的代碼及其原因-除了代碼庫的常規問題之外
  • 編寫其他代碼的編寫代碼的思維模式可能會變得松散,尤其是在編寫生成其他應用程序的應用程序時

LCDP和將創新推向邊緣

LCDP(低代碼開發平臺)作為“無代碼開發”的最新形式以及橋接高級用戶/ jr的新方法而受到關注。開發者差距。

隨著對新功能和新系統需求的增長,開發人員變得捉襟見肘,許多用戶被超載的Excel電子表格所束縛,或者由于各個級別的開發人員資源稀缺而根本沒有所需的軟件功能。

消費者SaaS解決方案可以完成許多一次性任務,但是一堆雜亂無章的Web應用程序和服務并不是滿足許多需求的可靠基礎。

另一方面,對于許多組織來說,昂貴的企業系統根本不是一個選擇。

除了節省開發成本外,授權“公民開發人員”在適當時構建自己的解決方案是LCDP價值主張的主要驅動力。

代碼生成器直接位于解決方案域的中間。

使用OpenAPI和StackGen端到端生成

StackGen采用整體方法來生成代碼-基于OpenAPI / Swagger模式。

開發從一開始就開始,重點是使用OpenAPI / Swagger設計出色的API 。

然后,該設計準則使您可以生成具有可預測行為的健壯堆棧,并使用此處的任何自定義邏輯和前端設計對其進行精確擴展。

為了達到這種靈活性,StackGen使用了3種代碼生成步驟以及3種不同的實現方式。

系統的3個主要組件使用了多種生成技術:Swagger CodeGen,MyBatis生成的DAO和映射,以及即將到來的StackGen PRO,ReactJS前端生成。

Swagger CodeGen和StackGen React代碼都使用Mustache從Mustache模板文件生成React內容。

  • Mustache
  • JavaPoet
  • Swagger CodeGen
  • MyBatis Generator

這種方法的優勢在于它是可插入的,并允許我們在運行時和編譯之前生成。

通過生成對開發人員友好的格式的高質量源代碼,現代代碼生成器在提供現代高度可擴展且健壯的基準代碼庫的同時,使全棧開發人員的效率倍增。

關于作者

約翰·麥克馬洪(John McMahon)是Starter Inc.的首席執行官,該公司是Extentech Inc的創始人,并且多年來是StackGen,Sheetster,OpenXLS,ExtenXLS和眾多軟件項目的開發商。

責任編輯:張燕妮 來源: 博客園
相關推薦

2012-07-11 10:51:37

編程

2013-03-22 16:43:03

可讀代碼代碼的藝術代碼編寫

2024-02-20 21:49:29

AI前端代碼

2016-11-30 18:35:03

JavaScript

2021-03-17 08:00:59

JS語言Javascript

2012-12-17 13:51:22

Web前端JavaScriptJS

2022-06-07 09:30:35

JavaScript變量名參數

2015-11-05 09:07:12

代碼傻瓜式

2021-04-25 11:31:45

React代碼整潔代碼的實踐

2024-06-24 14:19:48

2020-09-21 05:57:11

代碼編程語言開發

2024-02-23 08:00:00

2023-03-27 15:05:10

Python技巧

2020-08-27 07:00:00

代碼軟件應用程序

2011-11-25 10:35:20

Java

2012-04-27 16:54:57

Java代碼

2012-06-20 09:47:59

2014-04-21 10:14:52

PromisesJavaScript

2014-04-25 09:02:17

LuaLua優化Lua代碼

2013-04-15 09:02:43

JavaScriptJS
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产视频中文字幕 | 一级免费毛片 | 亚洲国产精久久久久久久 | 91视视频在线观看入口直接观看 | 国产高清在线精品一区二区三区 | 日韩在线精品 | 久久1区| 黄色国产在线视频 | 免费观看一级毛片 | 成人在线网 | 日韩中文字幕高清 | 成人国产精品久久 | 欧美激情亚洲天堂 | 欧美综合一区 | 欧美精品一区二区免费 | 99热热| 国产精品国产三级国产a | 日韩精品中文字幕一区二区三区 | 久久亚洲国产精品日日av夜夜 | 免费精品视频 | 成人在线免费网站 | 色.com| 国产一区免费视频 | 欧美a在线看 | www.久久久.com| 日本爱爱视频 | 五月婷婷激情网 | 激情综合五月 | 国产丝袜av | 精品国产91乱码一区二区三区 | 日本不卡免费新一二三区 | 亚州精品天堂中文字幕 | 狠狠的操 | 久久亚洲一区二区三区四区 | 第四色播日韩第一页 | 色爱综合网 | 日韩午夜在线播放 | 全部免费毛片在线播放网站 | 久久成人人人人精品欧 | 欧美一区二区黄 | 成人国产午夜在线观看 |