堅果內核變量居然使用拼音命名!還拼錯了?

2020-12-13 21IC中國電子網

不久前,錘子科技天貓官方旗艦店商品全線下架,錘子科技商城的多款手機也顯示為「到貨通知」。錘子可以的前途渺茫。

小米9發布後,其開源了小米9穩定版內核代碼,同時,開發者發現,錘子科技的多款手機內核代碼也已經在 Github 上開源,包括 Smartian T1、T2、M1、M1L,以及堅果系列。

代碼公開後,錘子科技貼吧名為jocover的網友吐槽說,代碼中變量居然用拼音命名!

該網友表示,誰知道fenbianlu是啥玩意?而且代碼裡一堆日期標註,難道錘子連git代碼管理都不會用了?這是背光的驅動,為ODM公司所寫,不過這個fenbianlu是錘科的天才lishaokai改的,看注釋,還有個變量temp也無力吐槽,加了兩變量還加成這樣,我佛了。

或許是一時疏忽將fenbianlv打錯了,也或許是拼音+英文創造出fenbian+luminance。

有人表示上市公司其實拼音英語雙標的情況屢見不鮮,也有人表示這樣做未免有點不夠國際化,還有人表示,拼音怎麼了,能用不就就行了。當然,這也給黑粉趁虛而入的機會:「居然沒能寫成日文,羅老師一定很不開心」。

接下來代碼又被扒出CPU作弊。如下圖,代碼寫了一大堆,其實就是把boost時間加個5毫秒的樣子,號稱smartisan cpu boost。據猜測,為動畫效果提供時鐘延遲,為了界面看起來漂亮。

另外,還有用堅果R1電池,另外有個670的方案,估計和T2的810版本一樣難產不見。

據悉,阿里巴巴、華為等公司嚴禁拼音與英文混合的方式命名,另外,還強制要求避免採用純拼音方式命名。雖然這些的確可能不會影響到程序的運行,但作為嚴謹嚴肅的程式設計師,優質的程序需要精心的雕琢,應該儘量避免這種情況。網友表示,這種三流程式設計師就不要多說了,可能連阿里一面都過不了。

那麼該如何規範編程?我們應當從排版、注釋開始著手,另外,還要注意標識符的命名以及代碼的可讀性,最後還有對於代碼的優化。任何程序都應精心雕琢,這既是我們的本職,也是職責所在。

相關焦點

  • 堅果內核變量居然使用拼音命名!還拼錯了!如何規範C語言編程?
    小米9發布後,其開源了小米9穩定版內核代碼,同時,開發者發現,錘子科技的多款手機內核代碼也已經在 Github 上開源,包括 Smartian T1、T2、M1、M1L,以及堅果系列。小米9內核地址:https://github.com/MiCode/Xiaomi_Kernel_OpenSource/tree/cepheus-p-oss堅果系列內核地址:https://github.com/SmartisanTech/SmartisanOS_Kernel_Source
  • 一張圖看懂Linux內核中Percpu變量的實現
    但你知道嗎,不僅是在程式語言中,在linux內核中,也有一個類似的機制,用來實現類似的目的,它叫做percpu變量。percpu變量,顧名思義,就是對於同一個變量,每個cpu都有自己的一份,它可以被用來存放一些cpu獨有的數據,比如cpu的id,cpu上正在運行的線程等等,因該機制可以非常方便的解決一些特定問題,所以在內核編程中被廣泛使用。
  • 一張圖看懂linux內核中percpu變量的實現
    但你知道嗎,不僅是在程式語言中,在linux內核中,也有一個類似的機制,用來實現類似的目的,它叫做percpu變量。percpu變量,顧名思義,就是對於同一個變量,每個cpu都有自己的一份,它可以被用來存放一些cpu獨有的數據,比如cpu的id,cpu上正在運行的線程等等,因該機制可以非常方便的解決一些特定問題,所以在內核編程中被廣泛使用。
  • 帶您進入內核開發的大門 | 自旋鎖的使用
    自旋鎖應該是Linux內核中使用最多的鎖了,其它鎖很多都依賴自旋鎖實現。我們今天先介紹自旋鎖,後續在介紹Linux內核的其它互斥機制。從字面意義上我們可以看出,自旋鎖處於自旋的狀態,什麼是自旋狀態呢?就是原地打轉,不停的循環。下面幾點是自旋鎖的特點:自旋鎖(spin lock)是一種死等的鎖機制。
  • 紅秀拼錯楊穎名字 而且這本封面拼錯了Angelababy名字的雜誌還出刊...
    紅秀拼錯楊穎名字 而且這本封面拼錯了Angelababy名字的雜誌還出刊發售了時間:2019-05-14 10:47   來源:今日頭條   責任編輯:莫小煙 川北在線核心提示:原標題:紅秀拼錯楊穎名字 而且這本封面拼錯了Angelababy名字的雜誌還出刊發售了 紅秀雜誌封面拼錯了Angelababy的名字不說
  • linux配置、編譯內核實用工具
    ◆變量 一種存儲臨時信息的載體。Make中使用的變量應該加上括號,例如$(TEMP)。  ◆命令 執行任務時使用的指令,可以是一條、多條,甚至沒有。  ◆規則 一條完整的規則具有以下格式:  目標(target) : 先決條件(prerequisites)  規則(command)  ......
  • Linux 系統內核的調試
    Kprobes 提供了一個強行進入任何內核例程,並從中斷處理器無幹擾地收集信息的接口。使用 Kprobes 可以輕鬆地收集處理器寄存器和全局數據結構等調試信息,而無需對Linux內核頻繁編譯和啟動,具體使用方法,請參考使用 Kprobes 調試內核。  以上介紹了進行Linux內核調試和跟蹤時的常用技術和方法。當然,內核調試與跟蹤的方法還不止以上提到的這些。
  • 深入理解Linux內核鍊表
    在Linux內核中使用了大量的鍊表結構來組織數據,包括設備列表以及各種功能模塊中的數據組織。這些鍊表大多採用在[include/linux/list.h]實現的一個相當精彩的鍊表數據結構。本文的後繼部分就將通過示例詳細介紹這一數據結構的組織和使用。
  • Linux內核獲取當前進程結構的current宏
    的幾個關鍵變量,最後提到了在內核裡獲取當前進程的pid的代碼:current->pid。pid是task_struct的一個成員變量,類型為pid_t,與系統調用getpid()函數的返回值一致。下圖是Linux內核源碼根目錄的/include/asm-generic/current.h文件,可以看到current的定義,最終關聯的是current_thread_info()函數。
  • 使用Kdump檢查Linux內核崩潰
    kdump 是獲取崩潰的 Linux 內核轉儲的一種方法,但是想找到解釋其使用和內部結構的文檔可能有點困難。在本文中,我將研究 kdump 的基本使用方法,和 kdump/kexec 在內核中是如何實現。 kexec 是一個 Linux 內核到內核的引導加載程序,可以幫助從第一個內核的上下文引導到第二個內核。
  • 堅果pro圖釘使用教程 還不會的火速圍觀吧!
    堅果pro圖釘使用教程 還不會的火速圍觀吧!時間:2017-07-01 12:52   來源:系統天堂   責任編輯:沫朵 川北在線核心提示:原標題:堅果pro圖釘使用教程 還不會的火速圍觀吧!堅果pro圖釘使用教程: 在獲得升級之後便第一時間嘗試解鎖了更多的功能,除了地圖、音樂、微信之外,更高端的操作是將電子書釘在了鎖屏上,相較鎖屏之後重新進入觀看無疑方便不少。 錘子OS打開該功能需要額外的設置   原標題:堅果pro圖釘使用教程 還不會的火速圍觀吧!
  • Linux內核工程師是怎麼步入內核殿堂的?
    如果真想做內核開發(其實絕大多數人並不感興趣),這種氛圍還是很有助於能力的成長的。聰明人的例子就不說了,扎心。大家分享一下我自己這個普通人是如何走上做內核開發這條路,還至今沒有餓死的。我是97年上的大學,學校比較一般,剛入學的時候我滿腦子想的是如何畢業之後和老家親戚們一起經營農村土特產。
  • 關鍵的Windows內核數據結構一覽(上)
    在我們的「Windows internals and debugging」課程中,學生經常會問我們這樣的一些問題:Windows內核使用哪種數據結構來實現互斥量?本文試圖通過描述Windows內核和設備驅動所使用的一些關鍵數據結構來回答這樣的問題。 本文重點強調了系統中各種數據結構的關係,幫助讀者在內核調試中進行導航。
  • C語言之不變量(const)
    聲明為 const 的變量是不能被用戶改變的(意思就是說你不允許你通過代碼去修改這個值),因為編譯器會將該變量放在只讀區,比如在 KEIL 開發平臺下,聲明為 const 的變量放在 FLASH 區,這樣即使你使用取地址符 & 獲取聲明為 const 變量地址,並通過指針進行修改,雖然編譯器不報錯,但也是無法進行修改的,因為 STM32 進行 FLASH 編程是有條件的。
  • PLC變量表的使用,變量的聲明、選用、顯示、定義、更改、保持性
    本篇我們以西門子S7-1200為例來介紹PLC變量表的使用。在S7-1200 CPU的編程理念中,特別強調符號尋址的使用,在開始編寫程序之前,用戶應當為輸入、輸出、中間變量定義相應的符號名,也就是標籤。
  • 堅果pro圖釘怎麼用 堅果pro圖釘使用教程
    堅果pro圖釘怎麼用 堅果pro圖釘使用教程時間:2017-07-01 13:16   來源:綠茶軟體園   責任編輯:玲玲 川北在線核心提示:原標題:堅果pro圖釘怎麼用 堅果pro圖釘使用教程 堅果pro圖釘怎麼用?大家是不是也想知道這個新上線的功能怎麼用呢?
  • C++ 條件變量使用詳解
    【導讀】:本文主要講解條件變量的詳細使用方法。condition_variable介紹在C++11中,我們可以使用條件變量(condition_variable)實現多個線程間的同步操作;當條件不滿足時,相關線程被一直阻塞,直到某種條件出現,這些線程才會被喚醒。
  • VBA基礎-對象變量的聲明與使用
    >Dim MSheet1 As Worksheet '聲明一個叫做MSheet的工作表對象變量,僅僅是工作表類型Dim MRange As Range '聲明一個叫做MRange的range對象變量'如果事先沒有聲明對象變量
  • 拼錯英語單詞的後果!
    你說你拼錯了也就算了,還嘲笑對方是不是傻瓜。今天呢,我們為大家總結了一些外國人常用錯誤集合,一起來「嘲笑」一下他們吧:    「we are all human beans」???我們都是人類豆子?這裡顯然是拼寫錯了human beings,但是最搞笑的是,轉發的這位老哥,嘲笑的同時還來了一個諧音梗,用rice諧音rise,而rice和bean都是穀物,配合起來有一種莫名的搞笑感。
  • 基於 GDI 對象的 Windows 內核漏洞利⽤
    0x02 內核池內核池的類型內核池可類⽐於⽤戶態下的堆內存,不同之處在於它是在內核態中使⽤的。更進⼀步,如果對象同時還擁有另⼀成員,即指向對象數據塊的指針,那麼就能將內存破壞的 primitives 轉換成內存 ARW primitives,這會讓利⽤程序的開發變得更加容易。要實現此利⽤技術通常需要藉助兩個對象,其中⼀個對象(manager)將⽤於修改第⼆個(通常是相鄰)對象(worker)的數據指針,使其獲得 ARW primitives(Game Over)。