<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    編寫go語言代碼三條基本原則

    VSole2022-08-04 11:14:05

    這是一篇翻譯文章,為了使讀者更好的理解,會在原文翻譯的基礎增加一些講解或描述。

    軟件工程是當您添加時間和其他程序員時編程發生的事情。— Russ Cox

    Russ 正在區分軟件編程和軟件工程。前者是您為自己編寫的程序,后者是隨著時間的推移許多人會使用的產品。工程師會來來去去,團隊會擴大和縮小,需求會改變,功能會被添加,錯誤會被修復。這是軟件工程的本質。

    三條基本原則

    • 清晰可讀
    • 化繁為簡
    • 生產力
    你會注意到我沒有說性能或并發性。有些語言比 Go 快一點,但它們肯定不像 Go 那樣簡單。有些語言將并發作為最高目標,但它們的可讀性和生產力都不高。性能和并發性是重要的屬性,但不如清晰、簡單和生產力重要。

    1.1 清晰可讀

    程序代碼應該主要是方便人類閱讀,并且可以在機器上運行。代碼的閱讀次數比編寫次數多得多。一段代碼在其生命周期中將被閱讀數百次,甚至數千次。清晰很重要,因為所有軟件,不僅僅是go程序,都是由人類編寫的,以供其他人閱讀。機器也使用軟件這一事實是次要的。

    如果你正在為自己編寫一個程序,也許它只需要運行一次,或者你是唯一會看到它的人,那么就做對你有用的事情。但是,如果這是一個多人貢獻的軟件,或者人們會在足夠長的時間內使用它,要求、功能或運行它的環境可能會發生變化,那么您的目標必須是為您的 程序是可維護的。

    1.2 化繁為簡

    簡單是可靠性的先決條件。— Edsger W. Dijkstra

    為什么我們要追求簡單?為什么 Go 程序簡單很重要?

    控制復雜性是計算機編程的本質。— Brian Kernighan

    我們都遇到過你說“我無法理解這段代碼”的情況,是嗎?我們都參與過你害怕做出改變的程序,因為你擔心它會破壞程序的另一部分;您不了解且不知道如何修復的部分。這是復雜性。

    構建軟件設計有兩種方式:一種是簡單到沒有明顯的缺陷,另一種是復雜到沒有明顯的缺陷。第一種方法要困難得多。— C. A. R. Hoare

    復雜性將可靠的軟件變成了不可靠的軟件。復雜性會扼殺軟件項目。因此簡單是 Go 的最高目標。無論我們編寫什么程序,我們都應該同意它們很簡單。

    1.3 生產力

    設計是一門藝術,要求編寫的代碼當前可用,并且以后仍能被改動 --Metz

    我要強調的最后一個基本原則是生產力。開發人員的生產力是一個龐大的話題,但歸結為這一點;你花多少時間做有用的工作而不是等待你的工具或絕望地迷失在外國代碼庫中。Go 程序員應該覺得他們可以用 Go 完成很多工作。

    有玩笑說 Go 是在等待 C++ 程序編譯時設計的。快速編譯是 Go 的一個關鍵特性,也是吸引新開發人員的關鍵特性。編譯速度是經久不衰的話題,公平地說,在其他靜態語言中需要幾分鐘的操作,在 Go 中只需要幾秒鐘。這有助于 Go 開發人員感覺與使用動態語言工作的同行一樣高效,而不會出現那些動態語言固有的可靠性問題。

    Go 程序員需要意識到編寫代碼是為了閱讀,因此將閱讀代碼的行為置于編寫代碼的行為之上。Go 甚至通過工具和自定義來強制所有代碼都以特定樣式格式化。這消除了學習項目特定方言的困難,并有助于發現錯誤,因為它們看起來不正確。

    Go 程序員不會花幾天時間調試難以理解的編譯錯誤。他們不會在復雜的構建腳本或將代碼部署到生產環境中浪費時間。最重要的是,他們不會花很長時間去理解同事寫的代碼。

    Go 是一種旨在提高生產力的語言,它是為大規模、工業規模的軟件設計而構建的。

    軟件go語言
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    微軟安全研究人員發現,一年前用 Go 語言編寫的 Hive 勒索軟件有了用 Rust 重寫的新變種。
    DarkBit勒索軟件分析
    2023-05-15 09:10:03
    json內容包括:文件大小限制:最小為25MB,最大為6GB,不同大小的文件被分成不同的部分,每個部分的大小也不相同。如 1000MB 到 4000MB 的大小的文件,被分為3部分,每部分大小不超過 10000 字節。DarkBit 會單獨加密這些較小的部分中的每一個,而不是一次加密整個文件。文件擴展名限制:排除特定的文件擴展名。利用 Go_Parser 解析 runtime 庫,把生成map文件導入到 x64dbg 檢測處理器是否為
    被盜賬戶直接損失價值數千英鎊的游戲內虛擬物品,至于黑客使用的盜號手段,十分簡單......
    同時,美國司法部長梅里克表示,警方正在構建Hive開發人員、管理員和附屬機構的地圖,作為逮捕、扣押Hive 勒索軟件組織以及其他行動的重要支撐證據。最終,Hive勒索軟件組織被FBI一鍋給端了,整個組織結構遭到了毀滅性的打擊。目前尚不清楚的是,Hive勒索軟件組織主要領導與核心成員是否已經被逮捕。持續增強勒索攻擊的打擊力度美國FBI聯合歐洲警方共同執法,對Hive勒索軟件組織進行徹底的打擊,進一步體現了全球主要國家對于勒索攻擊的態度。
    globeimposter和phobos家族仍然是云上傳播勒索病毒的主要來源,占據10月公共云勒索樣本量的近60%。值得注意的是,除網絡漏洞入侵外,RDP爆破方式進入受害者服務器成為10月入侵方式的主旋律,由此可見,云上的弱密碼問題仍然需要引起重視。
    快速編譯是 Go 的一個關鍵特性,也是吸引新開發人員的關鍵特性。這有助于 Go 開發人員感覺與使用動態語言工作的同行一樣高效,而不會出現那些動態語言固有的可靠性問題。Go 程序員需要意識到編寫代碼是為了閱讀,因此將閱讀代碼的行為置于編寫代碼的行為之上。Go 甚至通過工具和自定義來強制所有代碼都以特定樣式格式化。Go 是一種旨在提高生產力的語言,它是為大規模、工業規模的軟件設計而構建的。
    據研究人員聲稱,間歇性加密讓攻擊者可以更有效地規避使用統計分析來檢測當前勒索軟件感染的系統。針對使用不同文件大小的BlackCat勒索軟件的研究表明,間歇性加密為威脅分子在速度方面帶來了顯著優勢。該勒索軟件是用Go語言編寫的,據開發人員聲稱,這有望加快勒索軟件的運行,此外使用間歇性加密(圖1)。PLAY勒索軟件該勒索軟件于2022年6月首次露面。
    最近,Cyble的網絡研究人員調查了印度銀行和金融服務行業IT公司Nucleus Software于2021年5月30日遭受的一次攻擊,分析發現該公司是BlackCocaine勒索軟件團伙的受害者。
    最近,Cyble網絡安全人員調查了印度銀行和金融服務行業IT公司Nucleus Software于2021年5月30日遭受的一次攻擊。調查發現,對該公司實施網絡攻擊的是BlackCocaine團伙。根據調查,域名的WHOIS信息顯示BlackCocaine 勒索軟件的域是在2021年5月28日注冊的,由此可以判斷,Nucleus Software是BlackCocaine勒索軟件組織的第一個受害者。研究人員報告稱,一份名為的文件最近被提交到不同的公共沙箱。但目前,還未確定 BlackCocaine 的初始感染媒介。2021年4月至5月期間,亞太地區的網絡攻擊增加53%。
    弄清其中使用的網絡武器和數字技術,有助于幫助我們提前識別風險并合理規避風險,以免在面臨網絡攻擊時深陷網絡泥潭,防患于未然。破壞性攻擊旨在破壞數據并使目標系統無法運行。HermeticWiper特別針對Windows注冊表文件ntuser.dat和Windows事件日志,以盡量減少可用的取證文物。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类