程序员进阶之路

时间:2023-02-12 15:36:28

首先,吐槽一下,题目起的好"土"。今天想写一点自己整理的项目中用到的技术。自己现在前端(jsp、JavaScript、jQuery)和后端(主要是java编程)技术可以,做了一个SpringMVC模式和SSM模式的项目,目前正在做使用公司独立研发的IWAP框架的项目,期间感谢各位前辈的谆谆指导。在做项目的过程中最大的感触就是,量变真的会引发质变。当你觉得你不会的时候,等到下一个项目你会发现:其实你只是不知道你会。目前自己欠缺的是整个项目的配置文件问题。上升至整个IT知识体系来说,在算法、数据库、网络以及硬件等方面欠缺。BTW,自己现在确实是养成了一个“毛病”,强迫自己的代码写的要优雅,一旦不行就要改,哪怕是一个中英文的冒号都要强制改正,更不用说看到别人写的乱七八糟的代码都有想改的冲动了。

书归正传

数据可视化-将数据库查询到的数据信息转化成json串,通过ajax技术供前台可视化展示(全国地图形式)使用(用的是百度开源Echarts-不经意间给百度打了个小广告)

---后端SpringMVC模式Controller层

@Controller
@RequestMapping("/productMap")
public class ProductSaleController {
@Autowired
private ProdService prodService;// 余额
@RequestMapping(value = "/showProductSaleCountry")
public void showProductSaleCountry(HttpServletRequest request, HttpServletResponse response,
@RequestParam String fxzb, @RequestParam String fxld, @RequestParam String fxzq, @RequestParam String xznf,
@RequestParam String timeline, @RequestParam String select) {
//分析指标:余额
if (fxzb.equals(ConstantParameters.FXZB_YE)) {
    //分析粒度
    String myLevel = ControllerUtiles.tellLeval(fxld);
//查询当年数据/当年当月数据
String date = ConstantParameters.number.equals(fxzq)?ControllerUtiles.tellYear(timeline):xznf+ControllerUtiles.tellMonth(timeline);
//调用查询当年数据service方法   从数据库获取各省产品余额数据
List<ProvinceBalance> resultList = prodService.queryProvinceProdInfo(null, myLevel, date);
//获取产品列表
Map<String, String> resultMap = prodService.getProdInfoByList(resultList);
//拼json串传到前台,供ajax调用
List<ViewOjbectJSON> result = new ArrayList<ViewOjbectJSON>();
for (Map.Entry<String, String> entry : resultMap.entrySet()) {
String prodId = entry.getKey();
String prodName = entry.getValue();
ViewOjbectJSON jObj = new ViewOjbectJSON();
ArrayList<ProvinceBalance> list_1 = new ArrayList<ProvinceBalance>();
for (ProvinceBalance p : resultList) {
if (prodId.equals(p.getProdId())) {
list_1.add(p);
}
}
jObj.setName(prodName);
jObj.setProdList(list_1);
result.add(jObj);
}
String productSaleCountry_1 = JSON.toJSONString(result);
response.setContentType("text/html;charset=utf-8");
PrintWriter out = null;
try {
out = response.getWriter();
out.write(productSaleCountry_1);
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}

}
}

---前端数据可视化,jsp页面代码就不上了,技术难点是JavaScript、jQuery编程,中心思想是一切皆对象

//前端数据请求

function loadProductSaleData() {
var productSaleData = [];


$.ajax({
type : 'get',
async : false,
data : $('#select_form').serialize(),
url : resUrl,
dataType : "json",
error : function() {
console.log("ajax error")
return null;
},
success : function(data) {
productSaleData = data;
}
});

return productSaleData;
}

// 渲染地图
function loadProductSaleMap() {
// 加载视图
var productSaleMap = echarts.init(document.getElementById("ProductSaleMap"));

productSaleMap.showLoading();

option = {
timeline : loadTimeLine(),
options : loadOptions()
}

       // 地图点击事件
productSaleMap.on('click', function(params) {
if (params.componentType == 'geo') {
var select = params.name;
// 获取表单各项内容,一起发送到子页面
var data = $('#select_form').serialize();
// 弹出点击的省级地图
window.parent.imgClick("产品销售情况分析-" + select, "ywcj1?pvce=" + select + "&" + data);
}
});


// 窗口重置
window.onresize = productSaleMap.resize;
productSaleMap.hideLoading();
productSaleMap.setOption(option, true);
}

计算机本是一本实践性的学科,当然了天赋异禀的除外,只有脚踏实地的动手敲代码,以量变引发质变才能在技术这条道路上越走远。最大的感悟就是:不管你是不是新手,只要不太懈怠,2年,我相信无论是IT行业还是其他行业,你该掌握的技能基本都已经掌握,至于后续的进阶就要看个人的选择了。

另外,对object、array的应用也是感悟颇深。一言以蔽之:最近痴迷于技术无法自拔。