主頁 > 軟體設計 > 沒錯,我是高端吃瓜玩家

沒錯,我是高端吃瓜玩家

2022-01-05 21:48:23 軟體設計

前言

大家好,我是bigsai大賽哥,好久不見,甚是想念,

行了,咱們步入正軌,已經進入2022,在2021這一年,很多人的快樂消遣是在吃瓜快樂中度過的,有的作為主動吃瓜群眾第一手掌握訊息,有的作為第二手或者被動吃瓜者(比如我就是),

然而,現在吃瓜可有難度了,因為有的瓜可能是假的,某博上搜不到,在一些網站上、聊天出現一個神秘串串!!

6f3ff88886220b211ae5d842729c2202.png

這一串是啥玩意,驚天大瓜表達的啥意思,該怎么解讀?

這年頭,沒點知識連吃瓜群眾都當不成(手動狗頭)!作為程式員,不光要知道吃瓜的內容,還要知道吃瓜背后的技術!

好了,也不藏著掖著了,這一串就是大名鼎鼎的摩爾斯電碼,也稱摩斯密碼,當然這是以文本的形式直接展現了,你在諜戰劇中、戰爭劇中那些電報的滴滴噠噠的其實多半就是摩斯密碼,趁著這個機會,好好了解一下摩爾斯密碼吧!

摩爾斯電碼源來

摩爾斯電碼是怎么被發明的呢?是某個叫摩爾斯的天才發明的嗎?

其實在摩爾斯之前,就有非常笨重的電報機,不過這種電報機用了26根線表示26種字母(肯定沒學過計算機,妥妥的暴力美學),在實用方面很差,

在電氣時代剛流行的時代,并沒有電話手機,人們探索的第一步是如何用電去傳訊訊息,在這期間摩爾斯發明了電報并且獲得了專利,并且他的團隊(有說是他的助手艾爾菲德·維爾發明的摩爾斯電碼)配套發明了一套傳輸的規則被稱為摩爾斯電碼

在當時利用電去傳輸訊息信號是非常了不起的發明,而電報機接收方會根據電報電流通過控制一直筆列印發送方按下電報機的內容,電流通過長劃線就長,電流通過時間段劃線就短,沒有電流通過紙上空白就增長,

74623a105abe3c89add7039729756933.png

然后接收方根據摩爾斯電碼規則轉譯成對應的字符單詞即可,主要用( · )和(—)的不同排列組合表示不同的數字或字符,然后點劃之間、字符之間、字母之間停頓時間都是不同的,

摩爾斯電碼為什么用點劃兩種表示一些單詞字母呢?

大家可以考慮一下,如果一種符號確實理論上行得通,但是一個符號能夠表示的內容太少,一個連續點表示1、兩個連續點表示2、三個連續點表示3…… n種數字字符就需要n個數量符號數才能表示,這樣下去符號使用效率是非常低效了,

如果是三種符號表示,確實能夠表示的內容非常多,長度為5的符號就可以表示243個字符,能夠表達的內容其實已經遠遠超過日常使用(0-9數字,26個字母,幾個常用符號),看起來好像很緊湊但是三種符號訊號根本不好傳遞,很容易出現混淆問題(比如在電報等其他傳輸那么會分成長、中、短三種不容易甄別,遠不如長短兩種容易區分),

所以2就是一個非常神奇的數字,無論在計算機還是大自然都是非常巧妙的,01、長短、快慢、高低……都可以用兩種符號表示,并且這些內容在現實生活中也是非常容易展示實作的,并且使用兩種符號能夠表示內容數量也是可以接收的,長度為5的符號就可以可以表示2^5=32種數字字符,所以這種長度還是能夠被接收的,

2c2577b841d31ed41ff5c95cc9fe1a80.png

摩爾斯電碼藝術

我們關注摩爾斯電碼的一些含義,上面提到摩爾斯團隊早期發明的摩爾斯電碼是一些表示數字的點和劃用一個電鍵可以敲擊出點、劃以及中間的停頓(長按,短按表示點(.)、劃(—),松開不按表示停頓),點劃、字符、單詞等時長和停頓為:

  1. ( · ):1 (讀 dit ,時間占據1t )

  2. (—):111 (讀 dah ,時間占據3t )

  3. 字符內部的停頓(在點和劃之間):0 (時間占據1t )

  4. 字符間停頓:000 ( 時間占據3t )

  5. 單詞間的停頓:0000000 ( 時間占據7t )

有了上面的規則,我們大致能知道摩爾斯電碼長什么樣,那么怎么甄別它代表什么內容呢?這時候需要查找一本代碼表才能知道每個字母數字符號等對應的內容,其中一些主要內容如下:

319337bedde9b36acd8c6a3220ca03d1.png
來源維基百科

我靠,這個看起來好像有點記憶難度啊,確實是有難度的,根據這些內容符號的特性,有些教授給摩爾斯密碼搞成一棵二叉搜索樹讓大家更便捷記憶摩爾斯密碼,二叉樹表示的國際摩爾斯電碼,圖中每一分叉的左支為點(·),右支為劃(-),直到到達所需要表示的字符為止,這樣一棵樹可以更容易找到相似內容的聯系:

c7340938dec8c571d45d2e5310e8c413.png
來自維基百科

不過,摩爾斯電碼還是非常有智慧的(這里不清楚是發明者這么有智慧還是記憶大師發現這么牛批的規律),摩爾斯電碼的字母和數字還有著一套象形記憶的方式,這個可不是跟咱們牛批的中文有點相似么,其具體的記憶圖為:

06f3484b8d1af82440ce6a9c8de95542.png
來源dreamstime.com

一個MORSE CODE 的摩爾斯電碼的表示和記憶為:

7bc663a670bfea12acba1f3a0cab8ab9.png

掌握摩爾斯密碼

好了,通過上面的介紹,想必你對摩爾斯電碼有了一定的了解,對于我們普通人來說,不需要會記住每個字母數字對應的摩爾斯電碼,我們需要掌握的就是能夠懂得摩爾斯電碼編解碼的方式和規則即可,

簡單的說,我們要掌握發送和接收的規則,將單詞字母轉成摩爾斯電碼發送,將接收的摩爾斯電碼轉成單詞單詞字母即可,

比如我們現在有:ge gie hao 這段話,其中

a : .- ;e : .;g : --.;h : .... ;i : ..;o: ---

那么紙面上對應的摩爾斯編碼為(視覺上可甄別的距離):

--. .     --. .. .    .... .- ---

如果用聲音來表示(滴噠),那就是這樣的:

--.  . /  --.   ..  .  /  ....   .-   ---  
噠噠滴 滴 噠噠滴 滴滴 滴   滴滴滴滴 滴噠 噠噠噠

上面就大概是聲音的傳播程序(/表示單詞停頓時間長一些),如果用非常精確的二進制來表示,0表示沒資料,1表示有資料(電鈴按下),其實噠是滴的三倍時常,其二進制對應為:

--.  . /  --.   ..  .  /  ....   .-   --- 
111011101 000 1 0000000  111011101 000 101 000 1 0000000 1010101 000 10111 000 11101110111

可能看起來不是很直觀,我優化一下(實際上01是連續的沒有括號的)

--.        .      /       --.        ..      .    /     ....        .-          --- 
(111011101)000(1)0000000(111011101)000(101)000(1)0000000(1010101)000(10111)000(11101110111)
  噠噠滴       滴  (大停頓)  噠噠滴       滴滴     滴 (大停頓) 滴滴滴滴      滴噠         噠噠噠

上面就是比較標準的摩爾斯電碼,其中三個1表示噠(三倍滴的時常),一個1表示滴,0表示沒有電流資料,這個空檔期也要把味訓候的,滴噠之間是1t空閑時間,幾個滴噠組成的字符之間是3t空閑時間,幾個字符組成的一個單詞之間是7t空閑時間,

這樣,摩爾斯電碼的規則你就差不多是拿捏了,同樣給你一個摩爾斯電碼,比照電碼表也很容易給它轉成對應陳述句,

不過在那個時代很多電報是按照長度收費的,然而很多人就用一些簡要的單詞字母表示一句話,于是常用縮寫被很多人使用,這里不進行太多介紹,知道有點類似暗語就比如plmm:

4f9aae02b42e227e46f9c4451ab29383.png

此外,摩爾斯電碼還有一些特殊符號,表示發錯了、停止、終止、錯誤等等用來確保摩爾斯電碼發送的正確性(畢竟人肯定會有腦子糊涂或者手抖時刻就按錯了是吧),

中文電碼

對于歐美一些國家來說,他們用那些單詞和字母使用標準的摩爾斯電碼來通訊是沒有任何問題的,畢竟26字母+數字+10個數字+少量符號就足夠了,自摩爾斯電碼在1835年發明后,一直只能用來傳送英語或以拉丁字母拼寫的文字,但是在中國甚至其他國家,怎么用電報進行通信呢?

拼音?

拼音雖然勉強傳遞一些訊息,但是拼音會有很多造成很多解釋錯誤,舉個例子:

tai shuai le 可以表示太帥了,也可以表示太衰了,

ni tai mei le 可以表示你太美了,還能表示你太沒了,還能表示鎳鈦沒了……

主要是中文博大精深,所以拼音行不太通順,于是清朝時候政府雇外國人設計了中文電報,中文電碼表采用了四位阿拉伯數字作代號,簡稱“四碼電報”,從0001到9999按四位數順序排列,用四位數字表示最多一萬個漢字、字母和符號,

中文電碼,又稱標準中文電碼、中文商用電碼、中文電報碼或中文電報明碼,原本是于電報之中傳送中文資訊的方法,它是第一個把漢字化作電子訊號的編碼表,大家只需要知道它在初始時候采用的這種方式就行了

如果大家想查閱相關中文漢字對應的數字,可以在下面網站上查詢:

https://apps.chasedream.com/chinese-commercial-code/

百科對應的中文電碼也有:

https://baike.baidu.com/item/%E4%B8%AD%E6%96%87%E7%94%B5%E7%A0%81/2667759?fr=aladdin

但是中文電碼是無理碼并且數量也太多了,所以一般用戶根本沒法記憶使用,隨著通信發展、電話、手機計算機的發展,中文電碼的應用場景還是比較少的,

現在的各個網站中的中文摩斯密碼,大家實作的大多不是標準的中文電碼表對應的數字,很多是借助了其他編碼—Unicode編碼,Unicode(統一碼、萬國碼、單一碼)是計算機科學領域里的一項業界標準,包括字符集、編碼方案等,Unicode給每個字符提供了一個唯一的數字,不論是什么平臺、不論是什么程式、不論是什么語言,

所以大部分實作中文摩斯密碼的時候將對應中文字符轉成4位元組unicode(UCS-4),然后再將這四個字符進行摩爾斯編碼即可,

b62c6f9fbedfd97f927806e496c31b39.png

當然,各家實作方案細節上還是有所區別的,但是問題不大,但是大部分對其編碼程序只對中文進行Unicode編碼保證英文與標準的摩爾斯電碼進行統一,

還有就是為了讓解碼程序更容易,在中文摩斯密碼中每個字符之間用\劃分,這樣通過\可以準確知道一個字符的起始位置直接進行對應轉換即可,就不用擔心因為字符、數字湊在一起造成的混淆處理了,

實作一個簡單的中文摩斯密碼

上面說了那么多,對于程式員來說,寫的code才是真的,這里面針對上面的介紹,實作一個簡單的摩斯密碼啦,

這里面實作說明一下:

  • 標準形式無論中英文都以`\`作為字符劃分

  • 中文的處理不采取標準中文電碼表,這里采用轉成Unicode編碼的4個16進制數字

  • 不處理空格,字符間用斜杠分割(放開頭),中文字符內的Unicode字符間用空格分開(本質屬于一個中文字符內)

  • 要將字符轉成大寫(或者小寫),在進行Unicode編碼時候16進制有的字母也要轉成統一大小寫

實作的代碼為:

import java.util.HashMap;
import java.util.Locale;
import java.util.Map;

//公眾號:bigsai
//2021 1.3
public class MorseCode {
    Map<Character, String> encMap = new HashMap<Character, String>();// 摩爾斯編碼表集合
    Map<String, Character> decMap = new HashMap<String, Character>();// 摩爾斯解碼表集合

    public static void main(String[] args) {
        MorseCode morseCode=new MorseCode();
        String val="big賽6啊 不錯 sai66";
        String encode=morseCode.Encryption(val);
        String decode=morseCode.Decryption(encode);
        System.out.println(encode);
        System.out.println(decode);
    }

    public MorseCode() {
        encMap.put('A', ".-");
        encMap.put('B', "-...");
        encMap.put('C', "-.-.");
        encMap.put('D', "-..");
        encMap.put('E', ".");
        encMap.put('F', "..-.");
        encMap.put('G', "--.");
        encMap.put('H', "....");
        encMap.put('I', "..");
        encMap.put('J', ".---");
        encMap.put('K', "-.-");
        encMap.put('L', ".-..");
        encMap.put('M', "--");
        encMap.put('N', "-.");
        encMap.put('O', "---");
        encMap.put('P', ".--.");
        encMap.put('Q', "--.-");
        encMap.put('R', ".-.");
        encMap.put('S', "...");
        encMap.put('T', "-");
        encMap.put('U', "..-");
        encMap.put('V', "...-");
        encMap.put('W', ".--");
        encMap.put('X', "-..-");
        encMap.put('Y', "-.--");
        encMap.put('Z', "--..");

        /* 數字電碼0-9 */
        encMap.put('0', "-----");
        encMap.put('1', ".----");
        encMap.put('2', "..---");
        encMap.put('3', "...--");
        encMap.put('4', "....-");
        encMap.put('5', ".....");
        encMap.put('6', "-....");
        encMap.put('7', "--...");
        encMap.put('8', "---..");
        encMap.put('9', "----.");

        /* 標點符號,可自增刪 */
        encMap.put(',', "--..--"); // ,逗號
        encMap.put('.', ".-.-.-"); // .句號
        encMap.put('?', "..--.."); // ?問號
        encMap.put('!', "-.-.--"); // !感嘆號
        encMap.put('\'', ".----.");// '單引號
        encMap.put('\"', ".-..-.");// "引號
        encMap.put('=', "-...-");     // =等號
        encMap.put(':', "---..."); // :冒號
        encMap.put(';', "-.-.-."); // ;分號
        encMap.put('(', "-.--.");     // (前括號
        encMap.put(')', "-.--.-"); // )后括號
        encMap.put(' ', " ");        // 留空格,這里的星號是自定義的
        for(Character ch:encMap.keySet()){
            decMap.put(encMap.get(ch),ch);
        }

    }
    boolean isChinese(char ch){
        //獲取此字符的UniCodeBlock
        Character.UnicodeBlock ub = Character.UnicodeBlock.of(ch);
        //  GENERAL_PUNCTUATION 判斷中文的“號
        //  CJK_SYMBOLS_AND_PUNCTUATION 判斷中文的,號
        //  HALFWIDTH_AND_FULLWIDTH_FORMS 判斷中文的,號
        if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS
                || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
                || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
                || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B
                || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION         // 判斷中文的,號
                || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS       // 判斷中文的,號
                || ub == Character.UnicodeBlock.GENERAL_PUNCTUATION                 // 判斷中文的“號
        ){
            return true;
        }
        return false;
    }
    //帶中文的轉成unicode
    String Encryption(String str){
        str=str.toUpperCase();
       // System.out.println(str);
        StringBuilder sBuilder=new StringBuilder();
        char chs[]=str.toCharArray();
        for(char ch:chs){
            if(ch==' '){//不處理空格
                continue;
            }
            sBuilder.append("\\");//轉義字符 字符間斜杠分開
            if(isChinese(ch)){
                String unicodeStr=Integer.toHexString(ch).toUpperCase();//轉成unicoede
                for(int i=0;i<unicodeStr.length();i++){
                    sBuilder.append(encMap.get(unicodeStr.charAt(i)));
                    if(i!=unicodeStr.length()-1)
                       sBuilder.append(' ');//一個字符見的 摩斯密碼用空格隔開
                }
            }else {
                sBuilder.append(encMap.get(ch));
            }

        }
        return  sBuilder.toString();
    }
    String Decryption(String morseCode){
        StringBuilder sBuilder=new StringBuilder();
        String morseStrs[]=morseCode.split("\\\\");//轉義字符
        for(String morseStr:morseStrs){
            //一個字符 可能中
            if(morseStr!=null&&!"".equals(morseStr)){//去掉開頭空的
                String strs[]=morseStr.split(" ");
                if(strs.length==1){//非中文直接找
                    sBuilder.append(decMap.get(morseStr));
                }else {//中文先轉成4位unicode然后轉成中文
                    StringBuilder unicodeStr=new StringBuilder();
                    for(String uniChar:strs){
                        if(uniChar!=null&&!"".equals(uniChar)){//去掉開頭空的
                            unicodeStr.append(decMap.get(uniChar));
                        }
                    }
                    int chr = Integer.parseInt(unicodeStr.toString(), 16);
                    sBuilder.append((char)chr);//(char)別忘了
                }
            }
        }
        return sBuilder.toString();
    }
}

測驗為:

56a7dad7bd33bd5728a1eeb508e31126.png
空格不處理

結語

到此,摩爾斯電碼的內容介紹就結束啦,對于摩爾斯電碼,我也只是介紹一點點,實作也是簡單實作一個中文的摩斯密碼轉換,有可能情況沒考慮(有錯誤歡迎指正,今天寫的比較匆忙),大家參考學習即可啦!

另外,在這個季節,祝愿大家在新的一年萬事如意,快快樂樂!

推薦閱讀:

再見2021,2022加油!

一次倒在LRU上的經歷

備戰藍橋杯 這樣準沒錯!

動態規劃,它來了

歡迎卷王們一起加入力扣打卡群,堅持學習,歡迎加我好友「bigsai66」拉你進群,

e9c7f781aa52ed113774ef2ca526caf3.png

2022第一篇開頭,求彥祖西施們點個點贊、再看謝謝

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/404004.html

標籤:其他

上一篇:ROS學習與分享一:ROS與STM32通訊應用(第一節:發送一個字符)

下一篇:LaTeX特殊符號表 LaTeX希臘字母 LaTeX上標 LaTeX花體 LaTeX積分 LaTeX矩陣 LaTeX大括號

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more