造個‘’輪子‘’!只要掌握了這幾點,你也可以擼一個寫在簡歷上的輪子(附手擼過程)

      網友投稿 662 2025-04-02

      序言


      最近公司的項目有點少,摸魚的時間有點多,閑來無事就去程序員最大的交友論壇(Github)上看了看,發現上面好多輪子,簡直可以說是車輪遍地爬!我也就好奇了?怎么那么多人不上班,每天忙著造人?啊不,造輪!

      待我自己看了看,發現其實造輪子這件事也沒有想象中的那么難,我也就嘗試了一下在公司摸魚的時間造了一個小小的獨木輪。為什么叫他獨木輪呢?因為我的想法很簡單,就是要每一個模塊甚至每一個類單獨拎出來都可以直接測試,直接使用,用祖傳的CV方法可以直接用在自己的項目中,不需要引入依賴,不需要搞花里胡哨的配置,最重要的是,官方文檔,爺爺奶奶看了都能馬上上手!

      輪子簡介

      造個‘’輪子‘’!只要掌握了這幾點,你也可以擼一個寫在簡歷上的輪子(附手擼過程)

      我給我的獨木輪命名為:SweetCode,意味著你每天寫代碼就和吃Sugar一樣甜蜜,哎呀媽呀,簡直不要不要的。他的官方文檔長這樣,目前我就寫了一個模塊,都是自己在工作中常用到的一些小工具類,自己整理起來也是方便自己以后復用。

      Arrays

      我們來手擼一個Arrays的類,先來試試手。我目前常用到的對于數組的處理比較多的是:

      顯示字符串數組的內容,用,分隔.

      取得數組的第一個元素.

      把List轉換成字符串數組.

      判斷字符串數組是否包含指定的字符串

      package cn.linstudy.arrays; import java.util.ArrayList; import java.util.List; import java.util.Set; /** * @Author XiaoLin * @Date 2021/7/7 15:15 * @Description 數組工具類 */ public class ArrayUtils { /** * 顯示字符串數組的內容,用,分隔 * @param args 字符串數組 * @return 字符串數組的內容 */ public static String toString(String[] args) { return toString(args, ","); } /** * 顯示字符串數組的內容 * @param args 字符串數組 * @param separator 分隔符 * @return 字符串數組的內容 */ public static String toString(String[] args, String separator) { if (args == null || args.length == 0) { return null; } StringBuilder buffer = new StringBuilder(); for (int i = 0; i < args.length; i++) { if (i > 0) { buffer.append(separator); } buffer.append(args[i]); } return buffer.toString(); } /** * 取得字符串數組的第一個元素 * @param stringArray 字符串數組 * @return 字符串數組的第一個元素 */ public static String getFirst(String[] stringArray) { if (stringArray == null || stringArray.length == 0) { return null; } return stringArray[0]; } /** * 取得數組的第一個元素 * @param array 數組 * @return 數組的第一個元素 */ public static Object getFirst(Object[] array) { if (array == null || array.length == 0) { return null; } return array[0]; } /** * 把List轉換成字符串數組 * @param list 字符串List * @return 字符串數組 */ public static String[] toArray(List list) { return list.toArray(new String[list.size()]); } /** * 把Set轉換成字符串數組 * @param set 字符串Set * @return 字符串數組 */ public static String[] toArray(Set set) { return set.toArray(new String[set.size()]); } /** * 判斷字符串數組是否包含指定的字符串 * @param array 字符串數組 * @param str 指定的字符串 * @return 包含true,否則false */ public static boolean contains(String[] array, String str) { if (array == null || array.length == 0) { return false; } for (int i = 0; i < array.length; i++) { if (array[i] == null && str == null) { return true; } if (array[i].equals(str)) { return true; } } return false; } /** * 判斷字符串數組是否有不為Empty的值 * @param args 字符串數組 * @return 有true,否則false */ public static boolean hasValue(String[] args) { if (args == null || args.length == 0 || (args.length == 1 && args[0] == null)) { return false; } for (int i = 0, length = args.length; i < length; i++) { if (args[i] != null || args[i].trim().length() > 0) { return true; } } return false; } /** * 聯合兩個數組 * @param first 第一個數組 * @param last 另一個數組 * @return 內容合并后的數組 */ public static Object[] combine(Object[] first, Object[] last) { if (first.length == 0 && last.length == 0) { return null; } Object[] result = new Object[first.length + last.length]; System.arraycopy(first, 0, result, 0, first.length); System.arraycopy(last, 0, result, first.length, last.length); return result; } /** * 把數組轉換成 列表,如果數組為 null,則會返回一個空列表。 * @param array 數組 * @return 列表對象 */ public static List toList(Object[] array) { ArrayList list = new ArrayList(); if (array == null) { return list; } for (int i = 0; i < array.length; i++) { list.add(array[i]); } return list; } /** * 清除字符串數組中的null * @param array 字符串數組 * @return 清除null后的字符串數組 */ public static String[] clearNull(String[] array) { ArrayList list = new ArrayList(); for (int i = 0; i < array.length; i++) { if (array[i] != null) { list.add(array[i]); } } return toArray(list); } }

      大概寫完的話就這些幾個方法,其實也很簡單,最重要的是你需要在寫方法的時候統籌全局,知道這個方法是干什么的,為什么要寫他?寫他會不會出現耦合性很強的問題,我寫代碼的時候,首先會想一下這段代碼我寫的目的是什么?然后先開始寫注釋,將這個方法的作用、入參、返回值一一定義清楚,讓后面的人看了這個代碼有一種醍醐灌頂的感覺,不會說一頭霧水,接著就要開始去寫方法了,寫方法的話就涉及到了代碼規范,我在總結的時候講,總之這個項目我會一直維護下去和寫下去的!

      心得(代碼規范)

      其實說是寫輪子,最重要的還是代碼規范和方法的一個抽取,什么樣的代碼是好代碼,什么樣的代碼是屎山,想必這個很多程序員都是不知道的,下面我就來說一下我眼中的代碼規范!

      方法要見名知意,看到方法的入參、返回值、方法名都要知道他的具體含義,而不是要進入方法看邏輯才知道。

      方法的耦合性要盡量低,不要這個方法依賴下一個方法,下一個方法又調用其他的方法,如果在公司寫代碼方法要拆分的足夠細,需要想好這個方法后面會不會復用,人如果復用的話需要抽取出共同的一些語句,防止重復寫代碼。

      方法不要有太多的魔法值,如果有魔法值,可以用枚舉或者常量去代替,降低代碼耦合度。

      數據結構

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:無代碼開發平臺表(無代碼 平臺)
      下一篇:對編輯公式功能的改進Part 1_Excel 12 編輯欄_Excel 2007新知
      相關文章
      亚洲AV综合色区无码另类小说| 国产成人精品日本亚洲专区61 | 亚洲乱码国产一区三区| 国产精品亚洲va在线观看| 亚洲精华国产精华精华液| 亚洲真人无码永久在线观看| 亚洲国产日韩在线一区| 亚洲国产精品成人综合久久久 | 四虎精品亚洲一区二区三区| 含羞草国产亚洲精品岁国产精品| 亚洲av日韩综合一区二区三区| 亚洲AV综合永久无码精品天堂| 亚洲GV天堂无码男同在线观看| 欧美亚洲精品一区二区| 日韩在线视精品在亚洲| 色天使色婷婷在线影院亚洲| vvvv99日韩精品亚洲| 亚洲日韩涩涩成人午夜私人影院| 国产成人亚洲综合无码| 亚洲中文字幕久久精品无码APP| 亚洲人成色777777在线观看| 亚洲av一综合av一区| 亚洲国产成人片在线观看无码 | 亚洲国产精品一区二区第四页| 国产福利电影一区二区三区,亚洲国模精品一区 | 另类专区另类专区亚洲| 亚洲国产人成中文幕一级二级| 国产精品亚洲视频| 亚洲乱码无码永久不卡在线| 亚洲成人激情在线| 亚洲神级电影国语版| 亚洲综合丁香婷婷六月香| 亚洲日韩看片无码电影| 国产成人亚洲精品91专区高清 | 亚洲制服丝袜在线播放| 亚洲熟妇久久精品| 国产精品亚洲综合一区在线观看| 亚洲欧洲精品成人久久曰影片 | 亚洲日本va一区二区三区| 国产精品久久久久久亚洲小说| 中文字幕亚洲日韩无线码|