iT邦幫忙

0

Web網站系統程式碼比重介紹

web

網站系統前端 40%

  • 不要和DOM 奮戰了,擁抱MVVM(簡單來說就是資料的變化會反映到Html View的變化)
  • 由於網站美工常用Booststrap搭配Jquery
    • 推薦用VueJs因為和Booststrap及Jquery的PlugIn容易整合

中間層 20%

  • 例如:ASP.NET MVC、JAVA Spring
  • 當作MVC、Routing,資料拋轉就好
  • 商務邏輯盡量不要寫在這裏
    1. 原因是資料皆從資料庫來,寫在這裡將資料庫拉到這裡,只是將事情複雜化和增多
    2. 太重物件導向是否是錯誤

資料庫層 40%

  • 例如:MS SQL
  • 商務邏輯盡可能寫在這,因為商務資料也在這
    • 商務邏輯由於寫在DB層,過濾條件便須往後傳到SP,但並不是所有參數皆有值,如何處理參考如下
    • SP過濾條件範例
  • 善用Sql表達式(Expression)的特性,盡量少用程序語言的寫法
  • 為每個資料表建立系統編號(uuid)
  • 善用uuid當作外來鍵的參考,取得其他相關資料表內容
  • 取得資料表格結構說明
  • 取得SP內容
DECLARE @spList varchar(max),
        @SpName varchar(500),  
        @sourceSP nvarchar(max), 
        @olddelim nvarchar(32) = char(13) + Char(10), 
        @newdelim nchar(1) = NCHAR(9999)
       
Declare @Result Table (no int identity(1,1) ,content nvarchar(500))
Set @spList= 'SPName1,'                             --SP1
Set @spList += 'SPName2,'                           --SP2  

DECLARE SPFile_cursor CURSOR FOR   
SELECT value FROM STRING_SPLIT(@spList, ',') WHERE RTRIM(value) <> '' 
OPEN SPFile_cursor  
FETCH NEXT FROM SPFile_cursor INTO @SpName  
  
WHILE @@FETCH_STATUS = 0  
BEGIN  
    Set @sourceSP = ''
    SELECT @sourceSP = OBJECT_DEFINITION(OBJECT_ID) 
    FROM sys.sql_modules where OBJECT_NAME(OBJECT_ID) = @SpName
    Insert into @Result (content)
    SELECT value FROM STRING_SPLIT(REPLACE(@sourceSP, @olddelim, @newdelim), @newdelim);
    FETCH NEXT FROM SPFile_cursor INTO @SpName  
End
CLOSE SPFile_cursor  
DEALLOCATE SPFile_cursor  

Select content From @Result order by no

尚未有邦友留言

立即登入留言