Build Java Projects with ANT

根據Snyk的報告,大部分Java的專案是採用Maven作為Build tool,但是還是有將近11%的人在使用ANT(應該大部分是就專案),而比較新的Build tool Gradle有19%左右的人在使用。舊技術的淘汰和新技術的學習,也是軟體開發不可避免的挑戰之一。在上一篇文章中我們看了幾個ANT基本的tag,接下來在本篇文章中要開始介紹如何用ANT來build一個java project。

Continue reading

Build a java project with 3rd party .jar using command line

不斷地學習各種不同的技術是軟體開發必備的技能之一,在2016年面試中國微軟時的第3關,我也被問到如何快速地學習新知識和技術。當大數據時代剛到來的時候,我也曾為NoSQL database著迷過一陣子,卻一直沒有機會再正式的專案中用到mongoDB(後來有幸在產品開發時用了AWS上的DynamoDB)。

作為平時的愛好,我還是一時手癢用Java把玩了一下mongoDB了,本篇文章是上一篇的延伸,我在這篇文章中要介紹的是在java project中使用sqlite和mongoDB。java project中和database做溝通就需要用到JDBC driver。這些3rd party JDBC driver會以.jar file的形式存在。

Continue reading

Check schema and objects in MSSQL

以前工作時待過一個全職debug的部門,常常需要連線到不同國家的客戶的環境去debug,公司會分配一個位在菲律賓遠端工作的同事,和我一起連線到客戶的環境,我和菲律賓的溝通還是用英文,但是和客戶之間的溝通80%都由菲律賓的同事處理,我則是負責解決Bug。有時候bugs的產生是客戶在版本升級時,我們的deployment沒有完整地考慮所有客戶的升級路徑。這時候我就需要寫deployment scripts手動更新客戶的database,而我通常需要檢查database裡面的schema和objects (e.g., View, Stored Procedure, Functions, …)是否有被正確地deploy進去。

Continue reading

The ORDER BY clause is invalid in some scenarios

在做數據分析時,我們常常需要讓資料按照特定column來排序需要用到ORDER BY clause,但是在MSSQL中,ORDER BY clause沒辦法在views、inline functions、derived tables、subqueries和CTE中使用。除非有和TOP、OFFSET或FOR XML一起使用。(因為通常在這種情況下,和TOP、OFFSET或FOR XML一起使用整個query statement才有意義)

Continue reading

Hello Maven (using command line)

根據wiki:

Maven is a build automation tool used primarily for Java projects. Maven addresses two aspects of building software: first, it describes how software is built, and second, it describes its dependencies. Contrary to preceding tools like Apache Ant, it uses conventions for the build procedure, and only exceptions need to be written down.

簡言之,Maven和之前介紹過的ANT一樣是build automation tool,一樣都是用XML file來描寫flow。

Continue reading