天天看點

線上問題回報子產品實戰(二十一):完結篇

👨‍🎓作者:bug菌

✏️部落格:​​CSDN​​​、​​掘金​​等

💌公衆号:​​猿圈奇妙屋​​

🚫特别聲明:原創不易,轉載請附上原文出處連結和本文聲明,謝謝配合。

🙏版權聲明:文章裡可能部分文字或者圖檔來源于網際網路或者百度百科,如有侵權請聯系bug菌處理。

一、前言🔥

       如下,是bug菌想跟大家分享一下自己昨天剛接到一個臨時的需求,熱乎着呢,想分享一下自己是如何面對臨時需求并制定整個開發周期,其中包括從梳理業務到建立業務表再到實作業務邏輯形成閉環再到與前端對接,其中會穿插一些業務拓展及功能性拓展,這一條龍流程線上與大家一起見證,分享給剛入門的小夥伴,希望對你們有所幫助。

環境說明:idea2019.3 + springboot2.3.1.REALSE + mybati-plus3.2.0 + mysql5.6 + jdk1.8

       若小夥伴們在批閱文章的過程中覺得文章對您有一絲絲幫助,還請别吝啬您手裡的贊呀,大膽的把文章點亮👍吧,您的點贊三連(收藏⭐️+關注👨‍🎓+留言📃)就是對bug菌我創作道路上最好的鼓勵與支援😘。時光不棄🏃🏻‍♀️,創作不停💕,加油☘️ 

二、概述🔥

        非常的難以接受如今的這個結果,為什麼呢?因為這個子產品開發就此告一段落啦。說起來有跟着我純手做這個項目的小夥伴,應該也會很不舍吧,突然在下一期,就看不到我這麼系統性的教學文章了,說實在的,每一期都是圍繞着業務點來展開論述并從代碼邏輯角度上零隐藏代碼教學;對于基礎入門或者剛步入公司擰螺絲的小夥伴而言,這一子產品化的系列文章,就顯得非常有引導及訓練意義了。

        據私下了解到,有很多小夥伴初入公司,開發組并不會給到你多少子產品化的業務開發的,于是你每天要麼就是碎片化的按需求文檔寫點簡單的業務接口,要麼就是改點接口bug、或者做點運維相關的雜活,對于這樣,給人的成長與鍛煉都是非常緩慢的,但又不得是小白的必經之路,這條路雖然艱辛,但我作為幾年職場老人,其實想說,跟對人,能走不少彎路。

        是以對于初入職場的小夥伴而言,你們要做的就是讓自己能在職場中快速成長起來,找到一個能跟随學習的人,多做事,少說話。即,我總結出來的這套業務子產品開發教程,實際也就是為了幫助給到更多職場新人有鍛煉的機會。

        我對該子產品,也是實打實的在我的項目上切實存在且由我一人負責開發,雖然對于我在職場摸爬滾打了這麼些年,早已是玩的透透的了。是以今天輸出成教學文,我就是不想你們跟我一樣,走了許多彎路,浪費了大好時光。

        如今的網際網路行業,卷的不行,如今的高校大學生,教育訓練機構等都是一等一的勤奮刻苦,出來都是頂一個在職場摸爬滾打的一到三年的職場者,誰不努力這個行業就淘汰誰!這就是現實,誰技術好就要誰,說到底這個行業就是吃硬實力的,你不夠強,那你就等着被優化。

        上海這一長達幾個月的疫情,很多中小型公司由于扛不住經濟壓力,裁員消息層出不窮,或者工資打折,有發三折的有發五折的,上海由此就出現了巨多無業遊民,我的同僚也是由于這一出目前已在面試找工作,聽他說,很多公司都不招了,或者就是隻完成kpi,走到hr面被随便找個理由就被pass了,這些都找誰理去。

        是以啊,對就業形式就越發的嚴峻,我們也要做好應對,遲早也會輪到自己頭上,是以做好心理準備永遠不會有錯,我的同僚們就是個前車之鑒,吸取教訓,做好應對準備就好。

        對于如今的就業壓力,很多的其他行業人員也紛紛半路出家,轉到網際網路行業,畢竟所謂的門檻不高且薪資感人,實作财富自由靠實力很容易實作。

        是以對于你們而言,遇對人很重要,如果沒遇到的,那就暫時由我來當你們的引路人吧。

三、往期文章梳理🔥

        對于問題回報子產品實戰開發,我完整的梳理了每一期的教學及連結位址,僅供參考:希望能對你們有所幫助。

  • ​​線上問題回報子產品實戰(一):梳理業務需求并建立資料庫表​​
  • ​​線上問題回報子產品實戰(二):封裝代碼自動生成類檔案器​​
  • ​​線上問題回報子產品實戰(三):自動生成所有Controller、Service、Mapper等檔案​​
  • ​​線上問題回報子產品實戰(四):封裝通用字段類​​
  • ​​線上問題回報子產品實戰(五):實作對通用字段内容自動填充功能​​
  • ​​線上問題回報子產品實戰(六):接口文檔定義​​
  • ​​線上問題回報子產品實戰(七):安裝部署swagger2​​
  • ​​線上問題回報子產品實戰(八):實作圖檔上傳功能-上篇​​
  • ​​線上問題回報子產品實戰(九):實作圖檔上傳功能-下篇​​
  • ​​線上問題回報子產品實戰(十):實作圖檔預覽功能​​
  • ​​線上問題回報子產品實戰(十一):實作圖檔下載下傳功能​​
  • ​​線上問題回報子產品實戰(十二):實作圖檔删除功能​​
  • ​​線上問題回報子產品實戰(十三):實作多參數分頁查詢清單​​
  • ​​線上問題回報子產品實戰(十四):實作線上答疑功能​​
  • ​​線上問題回報子產品實戰(十五):實作線上更新回報狀态功能​​
  • ​​線上問題回報子產品實戰(十六):實作查詳情功能​​
  • ​​線上問題回報子產品實戰(十七):實作excel模闆線上下載下傳功能​​
  • ​​線上問題回報子產品實戰(十八):實作excel台賬檔案記錄批量導入功能​​
  • ​​線上問題回報子產品實戰(十九):實作資料批量導出到excel檔案中功能​​
  • ​​線上問題回報子產品實戰(二十):實作檔案批量導出到zip壓縮包中功能​​
  • ​​線上問題回報子產品實戰(二十一):完結篇​​

        如上是整整二十期内容,每一期都是幹貨,對于一個子產品的開發,如何一點一滴打造并測試部署上線,我再說一遍,這不是演習,是實戰!是實戰!是實戰!

        若你們覺得隻是需要了解其中某個知識點或者業務的話,也不反對,你就選擇其中的幾期進行學習就好,反正都已經完結啦;我隻希望你們能有所收獲,有所成長,也就不枉我苦心每天下班後給大家總結更新。

四、亮眼代碼展示🔥

1️⃣片段1

// 代碼生成器
        AutoGenerator mpg = new AutoGenerator();
        // 全局配置
        GlobalConfig gc = new GlobalConfig();
        String projectPath = System.getProperty("user.dir");
        gc.setOutputDir(projectPath + "/src/main/java");
        gc.setAuthor("luoyong");
        gc.setOpen(false);
        gc.setFileOverride(true);// 是否覆寫同名檔案,預設是false
        gc.setActiveRecord(true);// 不需要ActiveRecord特性的請改為false
        gc.setEnableCache(false);// XML 二級緩存
        gc.setBaseResultMap(true);// XML ResultMap 生成基本的resultmap
        gc.setBaseColumnList(true);// XML columList 生成基本的sql片段
        //實體屬性 Swagger2 注解
        gc.setSwagger2(true);
        mpg.setGlobalConfig(gc);      

2️⃣片段2

/**
   * 建立者 填充政策為插入自動填充
   */
  @ApiModelProperty(value = "建立人")
  @TableField(value = "create_by",fill = FieldFill.INSERT)
  protected String createBy;

  /**
   * 更新時間 填充政策為新增或更新自動填充
   */
  @ApiModelProperty(value = "修改時間")
  @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
  @TableField(value = "update_time",fill = FieldFill.INSERT_UPDATE)
  protected      

3️⃣片段3

//建立父級目錄
        if (!target.getParentFile().exists()) {
            target.getParentFile().mkdirs();
        }
        //如果存在,則說明重名
        if (target.exists()) {
            //命名重複,則檔案名後拼接 “_時間戳”
            //擷取目前時間戳
            long time = new Date().getTime();
            name = pathName + ConstantUtils.XHX + time + ConstantUtils.POINT + imageSuffix;
            path = directory + SEPARATOR + name;
            target = new File(path);
        } else {
            name = pathName + ConstantUtils.POINT + imageSuffix;
        }
        try (InputStream is =      

4️⃣片段4

byte[] data = null;
            try {
                FileInputStream input = new FileInputStream(file);
                data = new byte[input.available()];
                input.read(data);
                response.getOutputStream().write(data);
                input.close();
            } catch      

5️⃣片段5

private HttpServletRequest getRequest() {
        ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        HttpServletRequest request = servletRequestAttributes.getRequest();
        return      

6️⃣片段6

        還有更多精彩片段,想看的可以關注我,子產品還在持續開發...

 ... ...

        好啦,以上就是這期的所有内容啦,你們學廢了麼?如果對你有所幫助,還請不要忘記給bug菌[三連支援]喲。如果想獲得更多的學習資源或者想和更多的技術愛好者一起交流,可以關注我的公衆号『​​猿圈奇妙屋​​』,背景回複關鍵詞領取學習資料、大廠面經、面試模闆等海量資源,就等你來拿。

五、文末🔥

​​《springboot零基礎入門教學》​​,都是我一手打下的江山,持續更新中,希望能幫助到更多小夥伴們。

       我是bug菌,一名想走👣出大山改變命運的程式猿。接下來的路還很長,都等待着我們去突破、去挑戰。來吧,小夥伴們,我們一起加油!未來皆可期,fighting!

        最後送大家兩句我很喜歡的話,與諸君共勉!

☘️做你想做的人,沒有時間限制,隻要願意,什麼時候都可以開始。

🍀你能從現在開始改變,也可以一成不變;這件事,沒有規矩可言,你可以活出最精彩的自己。

線上問題回報子產品實戰(二十一):完結篇

💌如果文章對您有所幫助,就請留下您的贊吧!(#^.^#);

💝如果喜歡bug菌分享的文章,就請給bug菌點個關注吧!(๑′ᴗ‵๑)づ╭❤~;

💗如果對文章有任何疑問,還請文末留言或者加群吧【QQ交流群:708072830】;