此 Github 是存放相關考題內容,請面試者下載相關考題所需要的檔案,考試完成請直接透過 Email 告知你的 GitHub 的位置
考試說明:(測試前 10 分鐘會寄到您信箱)
重要提醒: 禁止在 "考試期間" 都使用「AI」來完成考題,都用 AI 本公司就不需要聘任工程師,直接聘任中文系來詢問 AI 來完成專案即可。如果你連考題都用 AI 來回應即代表你連「自我學習與要求」都不具備當 程式設計師 能力。
本公司要聘任是「真正會寫程式的工程師」來了解與解決問題。
(1). SQL SERVER 2019~2022 / Stored Procedure / JSON 與 CURD 的應用
(2). Visual Studio 操作
(3). .NET Core 8 Web API MVC 技術的應用
(4). GitHub 版控應用
以上這些都是開發上基本的應用,請盡量完成。評分標準在於你完成度,所謂的完成度是您必須要將以下的項目來完成撰寫,目錄 TSQLScript 裡面提供了相關考試要用的 Table 與 Stored Procedure 請使用目錄內的 TSQL 語法來完成考試
-
提供 Visual Studio for WebAPI 專案內容
1.1 你的專案一開始就要與 GitHub 來進行串接並有做到相關的版控,例如 develop , main , remotes/origin 等版控方式
1.2 必須連線到 SQL SERVER 來執行與運行 Exec [Stored Procedure] 並傳入 JSON
1.3 取得 JSON 後展示在 Swagger Web 頁面上 ,也請在 Swagger 的 CRUD 留下你的 JSON ,請不要還要考官幫你寫 JSON 才能夠測試。
1.4 你的程式必須產生相關 CRUD 的 JSON 來與 SQL SERVER 進行相關存取動作
1.5 SQL SERVER 只能用 JSON 並解析出相關資料並做出 CRUD 等相關功能 -
你的 SQL SERVER 要有以下內容
2.1 你必須撰寫 Stored Procedure 來為 Myoffice_ACPD 來進行相關 CRUD 的動作
2.2 每一個 Stored Procedure 資料的處理都必須要透過 JSON 的方式來進行相關 CRUD 的動作與行為
2.3 執行的過程中請使用 usp_AddLog 來記錄你 sp 的執行過程
2.4 寫入 Myoffice_ACPD 必須配合 [NEWSID] 這個 Stored Procedure 來為 Myoffice_ACPD 做為索引的來源
2.5 所有對 SQL CRUD 一概使用 SQL 內相關 JSON 函式
2.6 請備份你的 SQL Server Back 到 GitHub 上以供下載 -
WebAPI 必須都要在 swagger 展示與執行
3.1 執行時必須要在 swagger 上執行
3.2 swagger 必須要能夠執行 CRUD 等相關動作
3.3 swagger 請必須提供可以測試的 JSON,請不要還要考官幫你寫 JSON 才能夠測試。 -
考試與繳交的技術請以考題的規定,脫離了考題與要求的展示內容,也請不要用 AI 來完成你的專案,一概不及格。
- GitHub 是否有你的建立與處理的過程,會用 develop , main , remotes/origin 等版控方式
- 你的 Visual Studio 專案要有與 SQL Connection 並用 JSON 的方式來執行 Exec [Stored Procedure] json
- 請再三確定你的 Visual Studio 專案執行 swagger 必須要能夠做到相關 CRUD 的功能。
- 請備份你的資料庫(用 SQL SERVER 製作一份 *.bak)並上傳到 GitHub 不要給 TSQL ,以便提供本公司了解到你對於後端資料庫應用與 Visual Studio 專案是否都可以寫的清楚執行上都沒有問題。
-
本考題內容與本公司的專案沒有任何一點關係,只是了解你的基本能力與技術應用而已,如果你認定「這考題內容是在幫助本公司寫專案繳交作業」,你可以放棄此次考試的內容,別浪費你的時間!!
-
GitHub 只是要了解你有沒有「基本版控能力」而已,拿 main 去做 develop 分支,然後再 merge 到 main 這樣的基本操作而已,這不用花費五分鐘的時間,寫完程式全部提交到 GitHub 就這樣子而已,請不要想的太複雜!!
-
請再三確定你的 Visual Studio 專案執行 swagger 必須要能夠做到相關 CRUD 的功能,不要傳入 JSON 之後連 資料 都沒有寫進去,請記得要用 NewSID 來做為索引。
-
本公司現有開發的專案都是以「前/後 端分離」了,不需要一個人包辦前後端的應用開發。只想要了解你對於後端的能力與技術應用,以現有的技術 SQL SERVER 都己經可以接 JSON 了,SP 與 SP 之間的互動也都是以 JSON 來進行,所以你不需要使用 Entity Framework Core 來做 SQL SERVER Stored Procedure 的處理與動作,以你所寫的 Stored Procedure + OpenJSON 等相關函式來完成 CRUD 即可
-
繳交時請再三確定「繳交內容」是否完整,如果你連最基本繳交內容都「很隨意」,那..可能..你比較適合其他公司。
本公司是一家以「台灣的消防法規」專業顧問公司,你不需要懂「消防法規」本公司有相關同仁會告訴你「需求是什麼」再由你以「需求面」來提供給本公司相關技術開發上的專業。
以下是本公司「後端工程師」工作內容
-
公司專案是以「開發產品為導向」,專案都是「前端 / 後端分離」架構。系統規劃過程中,「前後端」已充分溝通並確定所需的 JSON 格式與內容。每位後端工程師必須具備根據系統需求來「規劃資料庫」與製作「實體關係模型」(Entity-Relationship Model) 的能力,這是我們團隊溝通的基礎。
-
我們採用「物件導向思維」在資料庫層的應用,特別是在預存程序 (SP) 之間的互動。預存程序間透過 JSON 進行資料交換,這種模式與物件導向程式設計中類別之間傳遞物件的概念相似。每個 SP 負責特定功能,擁有明確的責任範圍,對應於物件導向設計中的單一職責原則。SP 之間的調用類似於類別方法間的調用,而 JSON 結構則類似於類別定義,包含屬性和值。
-
本公司後端技術不使用「Entity Framework Core」。雖然 EF Core 具有物件導向的操作方式、變更追蹤機制、支援導航屬性和複雜查詢、LINQ 查詢語法等技術優勢,但我們更看重的是技術文件的完整性與清晰度。
在我們的開發理念中,一份精心撰寫的技術文件勝過千行未經文件說明的程式碼。完整的技術文件應包含系統架構圖、資料流程圖、資料庫結構設計、API 介面規格、核心演算法說明以及各模組間的互動關係。這些文件不僅是開發過程的指引,更是維護與擴展的基礎。
技術文件應當清晰闡述設計決策背後的考量,記錄系統的限制與假設,提供疑難排解指南,甚至包含效能測試結果與最佳實踐建議。這樣的文件能夠確保團隊成員對系統有一致的理解,降低溝通成本,提高開發效率。 -
由於我們採用 JSON 作為標準化的資料交換格式,即使需要使用 Python 或其他程式語言來存取資料庫,也能夠無縫整合而不需要更改核心架構。這種技術彈性讓我們能夠根據不同專案需求靈活選擇最適合的程式語言,同時維持系統的一致性和穩定性。無論是 .NET、Python 或其他語言,只要能夠處理 JSON 資料格式,就能夠與我們的系統無縫協作。
-
你的程式將在 Linux、Windows、Docker 等不同作業系統上運行,因此「程式與資料庫」必須拆開處理與撰寫,才能避免「避免程式與資料庫邏輯過度耦合」問題。當程式邏輯與資料存取邏輯過度糾纏在一起時,往往導致系統難以理解、維護和擴展,特別是在跨平台環境下。所有的 JSON 格式與內容都是事先經過溝通確定,再進行開發,這確保了系統各部分的順暢整合。
-
後端工程師需負責公司內部「電腦設備的維修、維護及採購事宜」,同時參與「專案客戶」的各項電腦設備採購規劃。然而,「專案客戶」後續的維護工作不屬於您的職責範圍,這部分將委託外部專業團隊配合處理。不過,在開發初期階段,您可能需要配合出差,實地了解客戶環境並協助規劃系統後續的解決方案。
-
AI 應用己經慢慢成型,也有相關 MCP (MCP介紹) 整合,本公司也在進行為產品或是內部來做 AI 整合於「本地/網路」端分離應用,希望能夠提供給客戶更好的服務與輔佐。
本公司的特性是以「消防、法規」為主的專業顧問公司,相關產品也是往這方面發展,研發出來的系統不會幫忙「救災或是做消防事務」,這是消防局的工作,我們的工作是「協助」客戶在平常能夠「遵循法規」定時定期檢查消防事務,才能夠讓客戶在「災害發生時、災害發生後」,能夠「快速的反應、正確的處理、事後了解與檢討」。
這些過程希望能夠透過 AI 的輔佐來通知客戶,AI 能夠從這些資料(檢查報告)來分析與檢討,透過這樣子輔佐來幫助客戶後續的營運。
所以後端工程人員大部份都是在處理「資料庫」的應用與開發,這些資料都是來自於「檢查報告」或是「檢查紀錄」,這些資料都是以 JSON 的方式來進行資料的交換與處理。 如果你還是希望做到「前端/後端」的開發,這樣子可能不太適合本公司。
以下項目都是本公司會進行處理與整合的技術與平台:
- Docker 容器化環境
- Linux 作業系統
- Raspberry Pi 5 嵌入式系統
- ESP32 微控制器
- PostgreSQL 關聯式資料庫
- Microsoft SQL Server 2019 以上
- Google Cloud Firestore
- InfluxDB 時間序列資料庫
- MongoDB 文件導向資料庫
- .NET 8 適用於 Windows 與 Linux 的開發框架