smart编程