呵,老闆不過如此,SQL還是得看我

来源:https://www.cnblogs.com/Java3y/p/18393617
-Advertisement-
Play Games

2018年7月,大三暑假進行時,時間過得飛快,我到這邊實習都已經一個月了。 我在沒工作之前,我老是覺得生產項目的代碼跟我平時自學練的會有很大的區別。 以為生產項目代碼啥的都會規範很多,比如在介面上會做很多安全性的工作(自學練的時候確實學到的類似的案例),代碼設計上會有很多設計模式的應用。 但實際上, ...


2018年7月,大三暑假進行時,時間過得飛快,我到這邊實習都已經一個月了。

我在沒工作之前,我老是覺得生產項目的代碼跟我平時自學練的會有很大的區別

以為生產項目代碼啥的都會規範很多,比如在介面上會做很多安全性的工作(自學練的時候確實學到的類似的案例),代碼設計上會有很多設計模式的應用。

但實際上,並不像想象中那樣。跟以前平時練的沒有太大的區別,生產項目的代碼也寫不出花,介面的參數也沒啥校驗,甚至發現很多地方都是bad smell

最大的區別就是代碼量很大,資料庫里躺著百來張密密麻麻的表,代碼上的Controller/Service/Dao的數量足以占滿整個屏幕。

在這個過程中會出現一些之前沒學過的技術棧,比如lombok/svn/swagger等,不過這些都很好學,不是什麼大問題。

最近令我頭疼的是SQL,SQL是真的難寫。我本以為我是寫Java的,但大多數時間都是去寫SQL。

我是很想去理解我所負責的介面對應的底層資料庫表是怎麼設計的,但始終都沒領悟到。

我只知道,我可以在這個表查這個欄位,在那個表查那個欄位,前端要什麼數據,我就把這倆張表給關聯起來,一起查出來就好了。

一個介面出去的數據,底層關聯5、6張表,是很正常的事。

有的其實我也不知道為啥要關聯的,反正看到歷史代碼是這麼寫,我就這麼複製上去就完了

還是老樣子,不亂改歷史的代碼,只管往裡面增加,除非是真的被測試妹子報出bug了。

對介面的性能也沒有啥要求,寫出來的SQL索引不索引啥的,根本就不需要我操心,介面能出數據,我就是成功的。

有次需求也是令我發麻,既要得到明細的聚合值,又要展示對應明細數據,這可真的難倒我了。

我琢磨了兩天,都沒把SQL給寫出來,後來就直接去問領導了,說這我卡住了,讓他幫幫我。

“前兩天不是有個需求嘛?既要統計每個售貨機貨道補貨的數量,又要將每個貨道的具體商品查詢出來,然後要分頁顯示,我這邊SQL沒寫出來”

他琢磨了會,說幫我看看,然後讓我多訓練些SQL相關的題。

我又回工位繼續琢磨了,訓練SQL相關的能力,我想到的就只有LeetCode了。沒想到我還要在LeetCode刷SQL啊。

過了幾小時,他喊我去他工位,發了一條SQL給我,讓我看行不行,符不符合需求。

我都不用跑sql,這明顯就不行。(原來他也寫不出來)

我對老闆說:”不行哦,這隻有統計信息,還要展示sku的明細呢,我根據你的SQL,在這基礎上我再想想

最後我嵌套多個子查詢,組合使用concatgroup_concat完成信息查詢,然後在程式里解析字元串完成數據的組裝。

這能寫出來真不容易,感覺自己Java技術沒啥進展,SQL能力倒是提升了不少。

雖說系統貌似用了SpringCloud,但是沒看到遠程調用的地方,SpringCloud只有在配置文件才能看到他的蹤影,不過我在業餘的時間里學了下。我終於踏進了分散式/微服務領域的大門了。

其他的就沒啥特別的,來來去去都是針對後臺做一些增刪改查,也沒啥機會接觸到高級的技術棧。

上班一個月了,領到工資的感覺是真的爽,行政是支付寶轉賬的,實打實的3500轉在支付寶上。

底層程式員》我的故事持續連載中...

更多的文章可往:文章的目錄導航
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • @目錄1.rosnode1.1 rosnode ping1.1.1 測試所有節點的連接狀態1.1.2 測試到某個節點的連接狀態1.2 rosnode list1.3 rosnode info1.4 rosnode machine1.4.1 列出所有設備1.4.2 查看指定設備上的運行節點1.5 ro ...
  • @目錄1.節點初始化2.話題通信2.1 創建發佈者對象2.2 消息發佈2.3 創建訂閱者對象3.服務通信3.1 創建服務對象3.2 創建客戶對象3.3 客戶發送請求3.4 客戶對象等待服務4. 迴旋函數4.1 spin4.2 spinOnce5.時間5.1 時刻5.1.1 獲取當前時刻5.1.2 設 ...
  • 日誌處理logging 一、日誌輸出 日誌預設的輸出等級為:waring級別及以上的等級 修改日誌的預設輸出等級通過logging.basicConfig(level='INFO') 記錄日誌列印時間:logging.basicConfig(format=console_fmt) console_f ...
  • 一、 六大設計原則 1. 單一職責原則:應該有且僅有一個原因引起類的變更 2. 里氏替換原則:子類可替換父類。 a) 子類必須完全實現父類的方法 b) 子類可以有自己的個性 c) 子類實現父類方法時,入參可放大 d) 子類實現父類方法時,輸出參數可縮小 3. 依賴倒置原則:高層模塊不應該依賴底層模塊 ...
  • 事件匯流排(在有些框架中也稱時間聚合器,如Prism的EventAggregater)是訂閱-發佈模式的一種實現,類似觀察者模式,相對於觀察者模式,事件匯流排更靈活,它是一種集中處理事件的模式,允許不同組件之間通信,降低耦合度。 事件匯流排的三要素:事件源(事件的定義)、發佈事件(觸發事件)、訂閱事件(事 ...
  • IT統一運維平臺案例統一運維平臺的架構圖,劃分為三個主要部分:統一運維門戶、報告與決策中心、運維服務調度中心。以下是對每個部分的解析:1. 統一運維門戶這是用戶的統一入口,提供了一系列運維相關的服務和功能,包括:綜合信息發佈:發佈運維相關的信息,如公告、通知等。 自助服務台:用戶可以通過自助服務台提 ...
  • 在 Python 中,內置類型的行為是通過一組特殊的“魔法方法”來實現的,這些魔法方法以雙下劃線開頭和結尾,比如 init 和 str,你可以通過重寫這些魔法方法來定製或擴展內置類型的行為。 ...
  • 【前言】網上各種面試八股文太多太多,但我今年找了好幾個都是很久很久以前的老面試題,老文檔了,和我出去面試市場上面試官問的問題基本上不一樣了,可以說被打了一個措手不及,浪費了好幾個機會,回來又找了好一些資料,以及結合自己最近的面試情況總結了一些心得免費分享給大家!雖然只有幾本電子文檔,但是濃縮的都是精 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...