第1~2周 基础练习 命令行与记事本 - davideuler/road-to-soft-design GitHub Wiki
我们很多人写代码很多年,往往一直在忙于实现功能,对于语言、程序的基础知之甚少,遇到稍微深入一点的问题容易不知所措。
须知合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。 因此我们从记事本和命令行开始做练习。
此次基础练习目标:
理解程序如何从源码编译成可执行的二进制,掌握查找API的方法; 系统化学习所使用语言的API。
一.从记事本和命令行开始
使用记事本(请勿使用IDE)编写程序,完成如下目标:
输入: 一个含完整路径的文件名,作为命令行参数输入,文件是一个文本文件。
文件内容说明: 一个记录有用户访问网站的各个URL的响应时间(毫秒)的文本文件; 文件中记录了网站的所有URL访问记录的响应时间,每行一个数字(响应时间),接着一个空格,一个URL,要求实现代码从文件中统计出95%的请求的响应时间。(即95%的网页的响应时间在多少毫秒以内)。
文件格式如:
- 30 http://www.dianping.com/wuhan/ch10/g246
- 35 http://www.dianping.com/beijing/ch10/r1475
- 90 http://www.dianping.com/beijing/
输出: 网站的所有页面请求里面,95%的页面请求的最长响应时间 (这个指标可以从用户的角度评估一个网站的整体性能)
要求:
- 1.使用记事本完成,记事本可以使用 Atom, VS.Code, Sublime, Textmate, VIM, Notepad++之类的工具,你也可以使用Windows自带的记事本。
- 2.使用命令行编译出可以运行的程序;
- 3.使用命令行来运行程序,文件以命令行参数提供,请提供可执行的 .sh或者.bat文件,里面保存运行项目的命令行脚本,跟编译过的整个项目一起打成ZIP包。
- 4.禁止使用Google,Baidu等任何搜索引擎,禁止使用StackOverflow, Github等。
需要帮助时,可以查询 J2SE SDK 文档。如果用C#,可以查询MSDN。用 Node可以查询Node官方文档。用Python可以查询Python官方文档。
工具:可以使用Mac的Dash(未付费也可以使用),或者Windows下面的velocity, 然后在Dash/Velocity里面安装所需要语言比如Java/C#的SDK Docsets。 Velocity
语言选择:可以使用Java/C#/Node,测试的同学可以选择使用 Python。
特别提醒:除了SDK文档外,图书也是可以作为第二种参考工具,遇到困难实在解决不了,可以跟集训营的其它学员共同讨论(请勿使用Google/Bing/Baidu);
二.阅读所用开发语言的API文档、总结、分享
目标:阅读并了解主要的Package,API接口,常用到的类;
要求:通览所用到的语言的 IO,集合(含字符串),线程,网络的API;记录下来学到的以前不了解的内容;记录下来有困惑不理解的地方;
工具:Dash/Velocity + 下载的SDK/Docsets
由于Dash, Velocity上面的文档都是英文文档,阅读英文文档有困难的同学,建议阅读中文的相应SDK。
Java的中文SDK文档只有1.6版本: JDK API 1.6