使用annotation的優點是明確表示這個方法的交易管理,立即與開發者做出約束
在交易的方法內要盡快地完成,不要穿插一些RPC或HTTP等請求以避免延誤到結束時間,
並非每個方法都要宣告交易,如果只有一個修改指令或只有讀取的指令就不需要使用到交易控制。
2019年4月17日 星期三
2019年4月16日 星期二
Crystal Report 的 rpt檔案位置
打算放置在Maven架構下的src/main/resource/report/*.rpt
當然就會build在WebAP中WEB-INF/classes/report/*.rpt
而Crystal Report的設定檔 CRConfig.xml 中 reportlocation 就需要設定如下
<?xml version="1.0" encoding="utf-8"?>
<CrystalReportEngine-configuration>
<reportlocation>../classes/report</reportlocation>
<timeout>0</timeout>
<ExternalFunctionLibraryClassNames>
<classname></classname>
</ExternalFunctionLibraryClassNames>
</CrystalReportEngine-configuration>
2019年4月15日 星期一
Tomcat Session Timeout
Tomcat server有一個預設global 的 web.xml 可以對整個server內的web application 設定session timeout 值為30分鐘,位於
$tomcat_home/conf/web.xml,當各別的web apps有在自己的web.xml設定會優先於global預設的!
2019年3月23日 星期六
HTML note
div 和 span 都有title 屬性,有點像是滑鼠移到該位置時會提示說明的功能
input 屬性type為text 的html 增加placeholder能達到位輸入時提示訊息,以往在html5前都還要額外做才能有這種功能.
input 屬性type為radio button的特性:如果有多個同名的radio都有check or change event,只要有一個被hidden不想被選到,但如果操作鍵盤按上下左右鍵就算被隱藏還是會被觸發,這沒遇到真不知道有這種特性!所以記得要用disabled不要單純只hide起來 !
input 屬性type為text 的html 增加placeholder能達到位輸入時提示訊息,以往在html5前都還要額外做才能有這種功能.
input 屬性type為radio button的特性:如果有多個同名的radio都有check or change event,只要有一個被hidden不想被選到,但如果操作鍵盤按上下左右鍵就算被隱藏還是會被觸發,這沒遇到真不知道有這種特性!所以記得要用disabled不要單純只hide起來 !
2019年1月1日 星期二
Java lambda on Eclipse
看了人家用 Intellij 寫lambda時,當寫下匿名類別時會有提示改成lambda,想說看Eclipse有沒有這個功能,目前Google大神時沒找到有這個功能,但還是可以透過下列方法達到類似效果
I use the version of Eclipse
(Version: 2018-09 (4.9.0)、Build id: 20180917-1800)
Click the right button of the Mouse
I use the version of Eclipse
(Version: 2018-09 (4.9.0)、Build id: 20180917-1800)
Click the right button of the Mouse
2018年6月30日 星期六
Clean Architecture 心得
咦~好久沒寫blog了,是什麼動機想寫下些心得呢?主要是最近又買新書了,是最近銷售前矛的書- Clean Architecture (整潔的軟體設計與架構篇),這一系列的名家名著已是書櫃上套書了.回到想下心得的動機是書中的第一章重點 :
軟體架構的目標是最小化建制和維護系統所需要的人力資源.
這句話卻是呼應了這五年來,在現在待的大公司中深深體會到的,我所負責的系統是該單位中人人覺得棘手的模組,負責過的人沒一個想繼續待下去,因此常常換人.直到我五年前開始跳入火坑.
這公司的系統開發模式一直以來就是外包導向,也就是給廠商開發,“會”寫code的(不代表很會寫)正職人員不是在專門寫code的,只做維運工作和測試等,當然有review code的責任,但實際上真的有在review的人真的少之又少...
初期的我當然不可能馬上了解系統的邏輯,所有的商業邏輯只在程式碼中,唯一熟悉系統的人就是廠商,甚至正職維運的人還要把log請廠商找出問題,依賴性之重可想而知,另外明明是很簡單的需求,都能報個幾天,每次上線都搞到前一天的下班後(就是加班)才能搞定,而且每次上線都是提心吊膽.
有鑒於,這些種種問題,想待下去就只能靠改變了 !
重構 !
從熟悉所有know-how和重構,到所有掌權(把責任回到正職人員身上),總共花了三年 !
這三年真的過得非常艱辛,下班後回家再加班到凌晨一兩點是常有的事.
當然之後的工作生活就是輕鬆愜意,如魚得水.所有的需求和資源都掌握自己手上,每次上版都踏實且心安理得.
要能工作的順遂,最重要的就是軟體的架構 !
當時有重新架構系統,才能在短時間內完成需求,剩下的時間就能從容不迫的面對其他雜事,當時間和專案能完全掌握,這種生活完全不用加班,而且績效還不錯呢!(也就是紅利和獎金領得不錯,驕傲狀...XD)
後續有機會再來寫書中其他心得和親身經驗的分享.
軟體架構的目標是最小化建制和維護系統所需要的人力資源.
這句話卻是呼應了這五年來,在現在待的大公司中深深體會到的,我所負責的系統是該單位中人人覺得棘手的模組,負責過的人沒一個想繼續待下去,因此常常換人.直到我五年前開始跳入火坑.
這公司的系統開發模式一直以來就是外包導向,也就是給廠商開發,“會”寫code的(不代表很會寫)正職人員不是在專門寫code的,只做維運工作和測試等,當然有review code的責任,但實際上真的有在review的人真的少之又少...
初期的我當然不可能馬上了解系統的邏輯,所有的商業邏輯只在程式碼中,唯一熟悉系統的人就是廠商,甚至正職維運的人還要把log請廠商找出問題,依賴性之重可想而知,另外明明是很簡單的需求,都能報個幾天,每次上線都搞到前一天的下班後(就是加班)才能搞定,而且每次上線都是提心吊膽.
有鑒於,這些種種問題,想待下去就只能靠改變了 !
重構 !
從熟悉所有know-how和重構,到所有掌權(把責任回到正職人員身上),總共花了三年 !
這三年真的過得非常艱辛,下班後回家再加班到凌晨一兩點是常有的事.
當然之後的工作生活就是輕鬆愜意,如魚得水.所有的需求和資源都掌握自己手上,每次上版都踏實且心安理得.
要能工作的順遂,最重要的就是軟體的架構 !
當時有重新架構系統,才能在短時間內完成需求,剩下的時間就能從容不迫的面對其他雜事,當時間和專案能完全掌握,這種生活完全不用加班,而且績效還不錯呢!(也就是紅利和獎金領得不錯,驕傲狀...XD)
後續有機會再來寫書中其他心得和親身經驗的分享.
訂閱:
文章 (Atom)
COVID-19 確診經歷紀實
原本以為真的是天選之人,就算先前家裡兩個小孩都確診都逃過了(可能有中獎但無症狀吧),不過就在2023年六月18日破解自認為天選之人的"心態",為什麼可以確認就是這天中獎的呢?因為在前都是居家上班,到人多的室內場所都會戴口罩,就剛好這天傍晚原本只想說要去附近的國...
-
因為使用alpine的base image,要讓OS的時區改成自己設定就需要額外安裝tzdata套件,再加上公司環境根本不能連外進行安裝,所以想在docker file設定 ENV TZ=“Asia/Taipei” 或mount volumn使用host的時區 /etc/tim...
-
案例: 收到的request資料中一個JSON格式的資料要保存,但為何不存JSON的字串就好?因為這個資料會不斷變動的,所以收到變動只要取出這個已將JSON轉成list的添加或刪除東西就好,不用再將JSON轉成list再轉回JSON存到DB去。 在Hibernate中是設定該欄...
-
在過一段時間後會出現如上錯誤訊息,這是因為MySQL已經切斷閒置的連線,所以可以利用connection pool的配置來處理這個問題。 Mysql服務器預設的「wait_timeout」是8小時(待查證), 所以mysql配置中my.ini 的wait_timeout值一定要大...


