今天和大家講講,在做windows編程常用的三個短小代碼。對于平時沒用過這些代碼的人,或許你可以考慮試著去看看在實踐中能否用的上這些代碼來處理實際問題或者實際需求。
windows透明窗口,讓窗口透明,如下圖。
行文不易,新手上路,多多關注,這真的對我很重要,私信更有驚喜
行文不易,新手上路,多多關注,這真的對我很重要,私信更有驚喜
全屏幕顯示窗體:很多游戲按esc或者最大化按鈕全屏功能就是這樣實現的,窗口比較大,效果不做展示,這里直接附上代碼。
行文不易,新手上路,多多關注,這真的對我很重要,私信更有驚喜
隱藏任務欄:很多寄生程序采用隱藏的方式,讓大家在任務管理器中找不到任務項,其實就是這樣一句簡單的代碼就可以實現。
SetWindowLong(GetSafeHwnd(),GWL_EXSTYLE, WS_EX_TOOLWINDOW);
修改注冊表讓程序自啟動:很多病毒程序常用手段
行文不易,新手上路,多多關注,這真的對我很重要,私信更有驚喜
好了分享就到這里了,希望分享的四個點對大家有幫助哦。
碼規范是成為一個優質程序員的重要一課,它是編程的樣式的模板。這篇文章將介紹12中編程規范及技巧,相信學習之后你的代碼一定會提升一個檔次。
首先我們要明確,為什么要遵循編碼規范?遵循這樣的約定有什么好處?
1. 遵循規范可以寫出干凈簡潔的代碼
2. 可以代碼的質量
3. 提升代碼的可讀性
4. 使代碼維護更加容易
代碼整潔之道一書的作者羅伯特曾經說過:
“干凈的代碼既簡單又直接。干凈的代碼讀起來像寫得很好的散文。簡潔的代碼永遠不會掩蓋設計者的意圖,而是充滿清晰的抽象和直接的控制線。” -羅伯特·馬丁(Robert C. Martin)
1.不要出現莫名其妙的數字
很多程序員在實現功能的時候會分配一個沒有明確意義的數字,用于特定的目的,寫完這個數字后沒有即使去做注釋,然后過兩天當程序出現問題時,翻看代碼碰到這個數字,連自己都忘了它的意義。當程序需要固定的數值參與時,給予特定的名稱。
案例
//錯誤的示范:
for(let i=0; i < 50; i++){
//do something
}
//正確的示范:
let NUMBER_OF_STUDENTS=50
for(let i=0; i < NUMBER_OF_STUDENTS; i++){
//do something
}
2.深度嵌套
有些程序需要使用到無數次的嵌套循環,看著看著就暈了,這時可以將所有循環提取到單獨的函數中。
假設有一個包含兩層嵌套的數組,想要拿到最后一個數組的值?一般情況下開發者都會使用嵌套循環,但不是最佳的辦法。可以嘗試使用函數的反復調用來完成操作執行相同操作的,這樣一來代碼重復性更小,更易于閱讀、重用性高。
// 錯誤示范
const array=[ [ ['Shoaib Mehedi'] ] ]
array.forEach((firstArr)=>{
firstArr.forEach((secondArr)=> {
secondArr.forEach((element)=> {
console.log(element);
})
})
})
// 正確示范
const array=[ [ ['Shoaib Mehedi'] ] ]
const getValuesOfNestedArray=(element)=> {
if(Array.isArray(element)){
return getValuesOfNestedArray(element[0])
}
return element
}
getValuesOfNestedArray(array)
3.注釋
注釋是一個老生常談的話題,很多人不重視,為了快速完成項目忽略注釋,導致后期修改和復用出現很大問題,得不償失。
4.避免創建大函數
當一個函數或一個類需要實現的功能太多時,建議將其分成多個小的函數。
假設我們需要加減兩個數字。我們可以用一個功能做到這一點。但是好的做法是將它們分為兩部分。如果有單獨的功能,則可以在整個應用程序中重復使用。
// 錯誤示范
const addSub=(a,b)=> {
// add
const addition=a+b
// sub
const sub=a-b
// returning as a string
return `${addition}${sub}`
}
//正確示范
// add
const add=(a,b)=> {
return a+b
}
// sub
const sub=(a,b)=> {
return a-b
}
5.重復代碼
重復代碼也是常見的問題,如遇到此情況,將重復代碼提取到函數中。
繼續用上面的第2點“深層嵌套”中的例子來舉例。
// 錯誤示范
const array=[ [ ['Shoaib Mehedi'] ] ]
array.forEach((firstArr)=>{
firstArr.forEach((secondArr)=> {
secondArr.forEach((element)=> {
console.log(element);
})
})
})
// 正確示范
const array=[ [ ['Shoaib Mehedi'] ] ]
const getValuesOfNestedArray=(element)=> {
if(Array.isArray(element)){
return getValuesOfNestedArray(element[0])
}
return element
}
getValuesOfNestedArray(array)
6.變量命名
變量命名也是有講究的,好的變量命名可以讓代碼更加通俗易懂,一般來說命名遵循以下標準,名稱以小寫字母開頭,之后的每一個單詞首字母都用大寫,比如駱駝的大小寫為camelCase
函數和變量都必須遵循此規則。
示例代碼:
let camelCase=''const thisIsCamelCase=()=> { //so something}
7.函數命名
函數的命名基本與上述提到的變量命名規則基本一樣,但需要注意的是,命名盡量注意詳細,比如我們需要一個能夠獲取用戶銀行信息的功能,那么要盡量將命名具體化,如下
錯誤的示范:getUserInfo。
正確的示范:getUserBankInfo
8.命名時注意動詞的使用
比如我們需要從數據庫中獲取用戶信息,函數的名稱可以是userInfo,user或者fetchUser,但我推薦使用含有動詞的命名 getUser。
//正確示范
function getUser(){//do something}
9. 常量值所有都大寫
常量命名都使用全大寫的名稱,并用下劃線分割所有單詞
//正確示范
const DAYS_IN_A_YEAR=365;
10. 避免變量使用字母
在功能性的命名中盡量避免使用單個字母,不過如果在循環中,可以忽略這一點
//錯誤示范
const q=()=> {
//....
}
//正確示范
const query=()=> {
//....
}//this is also okay
for(let i=0;i < 10; i++){
//...
}
結論
從長遠來看,遵循代碼編寫規范,對開發者的自身發展來說是百利而無一害的。每個項目的生命周期都很長,在很長的周期中誰也無法確定會用到之前的哪段代碼,哪個功能。所以對現在的每一段代碼負責,就是對以后的自己負責。加油,程序猿!!!
樣判斷哪種編程語言最流行?正如要挑選最受歡迎的冰激凌一樣,每個人都有自己的最愛。實際上,由于各種原因,不同的開發人員喜歡不同的編程語言,當你認為一種編程語言可能占主導地位時,一種新的編程語言出現了,或者一種老的語言與新的應用聯系起來了。
2021 年最流行的編程語言將基于相關開發人員想要完成的任務以及他們已經學習或完成的工作。對希望獲得加薪的有經驗的程序員來說,最流行的編程語言將不同于那些剛開始工作的程序員,這些人在參加了編程訓練營后想要從事初級編程工作。
有這么多不斷變化的語言,很難知道該從何處入手,尤其是開源語言一直在變化,新的包和框架不斷涌現。無論你的興趣或需求是什么,如果你想了解 2021 年最流行的編程語言,你可以從本文這個列表中找到它們。
無論你查看什么榜單,Python 幾乎都被列為最受初學者歡迎的編程語言:在 Qvault 關于初學者最佳編程語言的帖子,GitHub 的排名,Stack Overflow 的開發者調查,甚至是大學教授計算機科學專業的最熱門語言,都是如此。
它不像 Rust 那樣快速發展,也不像 JavaScript 那樣老掉牙。但它是一種不可阻擋的編程語言。它已經有 30 年的歷史了,它在使用和流行方面都經歷了穩步的增長,足以使它成為幾乎所有排行榜的榜首。
Python 的偉大之處在于它是根據開發者的經驗編寫的。從實踐來看,這意味著它讀起來就像英語一樣:特別是對于沒有編程背景的人來說,學習起來更容易。
同時,它也能非常快速地構建任何東西的基本原型,這使得初學者能夠在短短幾分鐘內編寫出具有良好教程的函數代碼,從而極大地增強了他們的能力,也使他們得到了回報。
最后,它具有廣泛的通用性。無論你的需求是數據科學,機器學習還是 Web 開發,你都可以通過 Python 來完成。
總之,Python 的語法,易用性和通用性使其成為最受初學者歡迎的編程語言。
Python 是最受初學者歡迎的編程語言,因為它為全新的開發者提供了強大的支持網絡。你可以使用 Python.org 上面向初學者的免費教程開始編程。
你還應該利用 Python 用戶和愛好者組成的豐富而富有支持性的在線社區。大部分 Python 支持者會記得自己學習 Python 的時光,并樂意向初學者伸出援手。瀏覽Reddit 論壇上的 Python 版塊,在 Stack Overflow 上閱讀和發布 Python 問題,看看是否能在 Discord 小組或 Slack 頻道上找到編程伙伴。
當我擔任客戶成功經理時,我的工作完全不涉及編程。但是,我仍然發現能夠在 R 中進行分析,查看保留率、流失率、交流量等等,這是非常有用的。R 是另一種開源編程語言,盡管沒有 Python 那么流行,但在數據科學界仍然非常活躍,深受人們歡迎。
若要找一份非編程的工作,R 是最流行的編程語言。它正在取代 SQL 和 SAS 這些閉源的付費語言。由于企業既想降低成本,又想雇傭無論日常工作中是否編程,都能進行分析的人,他們都在轉向 R。
Datacamp在其 R 與 Python 教程中,如此寫道,R 被“沒有計算機編程技能的統計學家、工程師和科學家所使用。它在學術界、金融、制藥、媒體和市場營銷中都很流行”。
對于那些出于某些非常正當理由而不在工作中進行編程的人來說,R 是最流行的編程語言。首先,它是開源的。和 Python 一樣,無需支付任何費用。
R 還提供了集成的開發編輯器 RStudio,使其更容易使用。R 有一個強大的開源軟件包生態系統,使任何人都可以非常簡單地用幾行代碼運行統計分析,并以幾行代碼創建出一個可供發布的圖形。
尤其是對于那些沒有或不想從事編程工作的人來說,我認為最好是找一個你真正關心的項目,然后設定一個明確的目標。你沒有工作的必要——至少現在你可以不知道如何編程。
你之前沒有任何編程經驗,所以學習曲線會非常陡峭。你需要一些你深深熱愛的東西。只有這樣才能讓你克服令人沮喪的障礙、知識空白和用戶錯誤,這也是每個編程初學者都需要經歷的一次旅程。
根據Stack Overflows 的調查,Perl 是榜單上最矛盾的語言之一,因為它是全球薪資最高的語言(年薪中位數為 7.5 萬美元),但也是最令人恐懼的語言(71.4%)。但是如果你想要在編程工作中獲得更高的收入,沒有比這更流行的編程語言了。它的前身是更流行的 PHP,同時也是一門有點火爆的垃圾堆語言,因此而聞名。
博客 Some Dude Says 在其博文《2020 年的 Perl,它還值得學習嗎?》(Perl in 2020: Is It Still Worth Learning?)說,“Perl 試圖為太多的人提供太多的東西。糟糕的代碼片段飄來飄去,而且在很多項目中,未經深思熟慮就被拉進來。
一個又一個的腳本小子拼湊出他們可憎的東西,并讓它們在世界范圍內散播。他們把源碼扔到網上,讓全世界也能免費看到。書里滿是垃圾,而且即使是早已過時的書也要重印。”
盡管很多開發者不喜歡它,但很多雇主發現它是一種非常有用的編程語言,可以用于新的項目,也可以用于維護現有的基礎結構和項目。正因為如此,它仍然是最流行的漲薪編程語言。
Opensource.com 將亞馬遜、波音、BBC 和 Northrop Grumman 列為尋找 Perl 開發人員的大公司的一員。它是一種很受雇主歡迎的編程語言。與 R 和 Python 一樣,它也是開源的,這意味著低成本和低風險的使用。許多用戶(例如,在Reddit 論壇的 Perl 子版塊上)都說它是一種范圍廣泛,但功能有限的語言,使得它既簡單又實用。
人們對其不滿的主要原因,可能是上面那篇博文中所列舉的各種因素的遺留,開源的本質讓這門語言失望了,并使其良好的名聲陷入了泥潭。
但是,隨著 Perl 的最新版本修復了很多用戶體驗問題,以及即將發布的 Perl 7, Perl 的流行度可能會再次緩慢攀升,尤其是鑒于 Perl 在雇主中需求很大,盡管 Perl 作為一門編程語言存在諸多缺陷,但雇主認為它是一種出色的技能,這使得它在這個最流行的編程語言榜單上占有一席之地。
learn.perl.org網站可能是開始學習 Perl 最好的地方。與 R 和 Python 不同,很多用戶都是從 Google 搜索和復制粘貼代碼塊中學習的,最好遠離 Stack Overflow 這樣的地方,因為那里可能有糟糕的代碼片段。Modern Perl也是一個相對較新的文檔,可以避免許多過時的、固執己見的教程,而Perl Cookbook則是經過實踐檢驗的資源。
R、Python 和 Perl 都是上個世紀開發的。而 Swift 則是 2014 年才被特別地開發成蘋果的編程語言。顧名思義(譯注:swift 即迅速的意思,也是一種鳥類雨燕的名詞),它以快速構建 iOS 應用而著稱,迅速超越了最初為此而生的 Objective-C。
蘋果官網自稱Swift 比 Objective-C 快 2.6 倍,比 Python 快 8.4 倍。盡管它是一門年輕的語言,但在 Stack Overflow 的 2020 年開發者調查中,它是最流行的第 9 種語言。要編寫 iOS 應用,沒有其他最流行的編程語言。
在Dummies.com上寫道:“開發 iOS 應用可能是你多年來職業生涯中最有趣的事情,投入的時間和金錢都很少(與 Windows 等平臺的開發相比)。”對于那些想寫代碼的人來說,開發應用是展示你的技能,甚至可以從中賺點錢的好方法。
與 Android 應用相比,iOS 擁有更強大的開發者程序,并且處理了在商店中創建和托管應用程序所面臨的許多棘手問題。開發 iOS 應用的速度也比 Android更快。
基于這些原因,對于那些想要開發 iOS 移動應用的人來說,Swift 是最流行的編程語言。
顯然,蘋果在幫助開發者學習 Swift 方面有著既得利益,所以它是開源的。蘋果公司居然開發了一款名為Swift Playground的應用,該應用旨在幫助初級編程者學習 Swift 的基礎知識,同時還提供其他一些資源來幫助用戶學習。如果你的編程水平比較高,或者想業余時間學習 Swift。
之后,最好的方法就是干脆腳踏實地,用 Swift 設計你的第一個應用。
Ruby 是最受初創企業歡迎的編程語言之一——這是一種有不止一種方式的語言,其非常簡單的語法使得許多初創企業具有“快速行動,打破常規”的風氣,而這種風氣也受到了橫向思維者的青睞。
Ruby on Rails 是一個運行 Ruby 的全棧 Web 應用框架,而且由于它很容易在很短的時間內構建 Web 應用,所以很受歡迎。
對于許多初學者來說,使用像 Python 這樣的語言工作可能會感到一些局限性,因為在這種語言中,通常只有一種方法來完成工作。Ruby 簡單的語法允許靈活的方法,這對于那些正在學習第二種編程語言的人來說是個福音,對于那些更喜歡從另一個角度思考問題的人來說也是個福音。這使得 Ruby 在 2021 年最流行的編程語言榜單中名列前茅。
由于 Ruby 的動態性,因此沒有一種單一的學習方法。盡管理解諸如變量、數據結構和條件語句等核心編程概念非常重要,但 Ruby 和 Ruby on Rails 的簡單性意味著,一旦你掌握了基礎知識,下一步應該是嘗試構建一個自己的簡單的 Web 應用。
JavaScript 是最流行的 Web 編程語言,負責交互式網站。它開發于 1995 年,作為當今最主要的客戶端腳本語言,95% 的網站都在使用 JavaScript。隨著 Node.js 的開發,很多人也開始將 JavaScript 用于服務器端。它與 CSS 和 HTML 一起,構建了你隨時訪問萬維網時看到的東西。
根據 Stack Overflow 的 2020 年開發者調查,它已經連續八年成為使用最多的語言。對任何開發人員來說,只要網站存在,JavaScript 就會有用。顯然,這對任何 Web 開發人員都是必須掌握的。即便你不想成為一個 Web 開發人員,建立自己網站的能力(現在常常用來制作簡歷和作品集)也是一 個吸引人的技巧,值得展示。
對于 Web 開發和移動應用來說,JavaScript 是最流行的編程語言,這一點是非常了不起的,因為它是作為對第一次瀏覽器戰爭的回應而在短短十天內創建的。
它之所以如此流行,是因為它無處不在,但要了解它為什么無處不在也很好。首先,它可以用于幾乎所有的前端和后端 Web 開發,但也有一些框架的開發使它更進一步。例如,JavaScript 也用于 Slack 和 Skype 這樣的桌面應用,它們使用Electron.js。Vue.js、Angular.js和React.js是獨立的 JavaScript 網絡框架,用于構建用戶界面,分別由谷歌前員工 Evan You、谷歌和 Facebook 開發。
它也是標準化的,這意味著經常有新版本的更新和發布。無論你的編程生涯處于什么階段,這門語言都能為你提供一些東西。
如果你搜索“學習 JavaScript”,很容易被大量的信息、教程和指南所淹沒。甚至很難知道你需要哪些框架和庫。這就是為什么我推薦一種分層次的方法,使你能夠系統地、持續地學習 Web 開發人員最流行的編程語言。一些例子包括《Node.js 開發實戰》(JS: The Right Way),以及 Qvault 的《編程基礎入門》(Basic Intro to Coding)。
Go 是由 Google 開發的,受到了編程語言巨頭 C 的影響,但它是為了避免 C++ 的缺陷,而 C++ 被 Go 開發人員普遍鄙視。其目的是創建一種適合在龐大代碼庫時代使用的語言。現在它已經被幾家大公司使用,谷歌顯然是其中之一,但 Uber、Twitch 和 Dropbox 也在其中。
在 Stack Overflows 的開發者調查中,它在最流行的語言排行榜上排名第三(17.9%),同時也是全球最高的薪資中位數(7.4 萬美元)。
它是最流行的編程語言,對于想要快速提高收入的開發人員來說,有幾個原因。首先,它是一門為大型項目而生的語言。例如,與 Ruby 不同,Ruby 的構建速度快,但是很難擴展,而 Go 是谷歌為幫助他們更快地處理大型項目和任務而有意創建的。谷歌為了減少閱讀和調試代碼所需的時間,專門創建了 Go,以便使這些任務變得可行。這樣,它就成了許多旨在實現該規模項目的大公司的吸引力語言。
它還被譽為比 Perl 更快、也更容易學習,在最高薪資排行榜上名列前茅。Perl 擁有數十年的歷史和意見,而 Go 是 2009 年才創建的,它的語法更簡潔,也更現代。數據工程師 Samuel Jones 在使用 Go 構建了一個 API 之后,發表了一篇關于 Go 的評論,他認為,Go 不像很多詞匯表臃腫的編程語言,它小到足以“裝進你的大腦”。這樣可以減少在線和參考書中搜索答案和語法的時間。
僅僅通過閱讀來學習 Go 也是可能的,因為它的語法非常清晰,即使是不熟悉它的人,甚至是不懂編程的人,也能閱讀代碼,并理解它所發生的一切。
作為谷歌為互聯網打造的一門語言,可想而知會有幾個免費的網絡資源可以幫助你踏上學習之路。首先,有幾個資源都值得推薦:《Go 語言之旅》(A Tour of Go),在那里你可以學習使用 Go。它是交互式的,你可以在網站本身運行自己的代碼片段。它被劃分為不同的模塊,這樣就可以很容易地跟蹤你所在的位置,并在必要時進行回溯。
一旦你掌握了基礎知識,其他一些很棒的資源,包括《實例學習 Go 語言》(Go By Example)和《精通 Go》(Go Mastery),在這些資源中,你將學會如何發現代碼的實例,用于典型或常見的任務。
根據2020 年 Stack Overflow 的開發者調查,Rust 連續五年成為最流行的語言,并且是排名第五的最想使用的語言(14.6%)。那么,為什么盡管它客觀上是最受歡迎的編程語言,卻沒有排在榜首呢?因為根據同一份調查,97% 的調查對象從未使用過 Rust。它的未來也不明朗。
Mozilla 在 2009 年贊助了 Rust 的開發,并在 2010 年宣布Rust。它被視為其他系統編程語言(例如 C 或 C++)的替代方案,根據它的[維基百科詞條](https://en.wikipedia.org/wiki/Rust_(programming_language),它是一種用于高度并發和高度安全系統的語言。這對于開發人員來說,意味著他們能夠快速高效地編寫安全的代碼。
但由于新冠肺炎疫情,Mozilla裁掉了 Rust 團隊的大部分人員,專注于商業產品。雖然他們已經宣布,將會成立一個基金會,以掌握未來的所有權和 Rust 的成本,但目前還沒有確定運作方式。
假設 Rust 能夠克服當前的困難,我預期它將會逐年變得更加流行。它擁有一個由當前開發人員組成的專用粉絲群,越來越多的開發人員對學習它感興趣。雖然它可能不會在 2021 年的排行榜上名列前茅,但我相信,它有望成為 2022 年或以后最流行的編程語言。
在易于學習方面,許多開發人員將它與 C++ 進行了比較。對許多開發人員來說,安全代碼的優先級可能是令人沮喪的,因為他們在輸入代碼時只會得到令人惱火的錯誤信息,但這可能是一種轉變,從“快速行動,打破陳規”的心態,更多地轉向更安全、結構更合理的代碼庫。
它既可以應用于長期以來的開發必需品,也可以應用于更多未來主義的事業。Mozilla 關于它的網頁描述了它的應用范圍:“游戲引擎、操作系統、文件系統、瀏覽器組件和虛擬現實的模擬引擎。”
由于這些原因,Rust 可能是未來最流行的編程語言。
由于 Rust 非常注重安全和結構,開發人員會花費很多時間和資源來確保錯誤信息是用戶友好的,這與許多其他編程語言不同。這使得初學者學習起來特別有意義,因為他們在犯錯誤的時候很容易就能改正。
Rust 網站提供了三種嘗試的途徑:閱讀名為“The Book”的書,通過小項目嘗試Rustlings Course,以幫助入門和運行,以及《實例學 Rust》(Rust By Example),它闡明了支撐 Rust 的概念和庫。所有這些資源都是免費的。
正如 Reddit 論壇上的一個網友所指出的那樣,這是一門相對較新的語言,因為很多問題的答案,還沒有在 Stack Overflow 這樣的地方發布和回答。出于這一原因,他們建議加入 Discord 頻道,以此作為獲得導師和支持性社區學習 Rust 的途徑。
正如你從這個列表所看到的,現在有很多編程語言可供選擇,其中很多都是最近才出現的。盡管一些語言在客觀上比另一些語言更適合于特定的任務,但是大多數語言對某些人是有益的。如果你想學習 2021 年最流行的編程語言,你首先要決定你想從學習編程語言中得到什么。
不管你坐在哪里,保持對趨勢的關注,并確保你的編程游戲處于領先地位,這總歸是一件好事。超過 70% 的專業水平的開發人員每年至少學習一次新的編程技能。為什么不從 2021 年開始,使用一種 2021 年最流行的編程語言,優先考慮你未來的技能呢?這個列表將幫助你選擇一個或多個來開始學習之旅。
作者介紹:
Zulie Rane,理學碩士,自由撰稿人。
原文鏈接:
https://towardsdatascience.com/the-8-most-popular-coding-languages-of-2021-b3dccb004635
延伸閱讀:
關注我并轉發此篇文章,即可獲得學習資料~若想了解更多,也可移步InfoQ官網,獲取InfoQ最新資訊~