林帅帅 个人简历

  • 基本信息


    • 姓名: 林帅帅
    • 性别: 男
    • 电话: 18669385645
    • 邮箱: admin@linshuaishuai.com
    • 地址: 山东省威海市
    • 出生年月: 1992年9月1日
    • 工作经验: 3年
    • 学历: 大学本科
    • 专业: 计算机科学与技术
    • 毕业院校: 青岛理工大学

  • 教育背景


    • 2011年9月 - 2015年7月 青岛理工大学

      在校主修课程:高等数学、线性代数、概率论与数理统计、离散数学、计算机组成原理、C程序设计语言、C++面向对象程序设计、java编程、数字逻辑电路、汇编语言、电路电子技术、数据结构与算法、计算机体系与结构、操作系统、数据库系统原理、编译原理、计算机网络、软件工程理论、微机原理与接口技术、嵌入式系统概论、嵌入式操作系统、嵌入式设计与应用。


    • 2012年9月 - 2015年7月 自学嵌入式技术

      由于对计算机硬件以及自动化充满兴趣,再加上拥有了一定的专业基础,从2012年开始入门嵌入式技术。先后自学了51单片机、STM32单片机、ARM9微处理器等裸机编程,并完成了多个个人作品。然后开始自学Linux操作系统、Linux环境编程,以及在Linux在ARM上的移植。


    • 2014年10月 - 2015年7月 自学JAVA EE

      因为就业原因,开始自学JAVA EE、HTML5、CSS3、JavaScript、数据库相关技术。由硬件转软件,初期只是简单地学习HTTP协议、Servlet原理、Java框架等, 后来开始更深层次的学习了编程思想、设计模式、JVM原理、数据库优化等,并自己简单实现了一些常用的框架功能。
      进公司以后资深同事给指明了大的方向,剩下完全是自己看书、看教程,自己写代码练习,自己解决各种问题。


  • 个人作品


    • 2014/04 校园铃声控制系统

      为学校开发了一套铃声控制系统用单片机和GPS芯片、液晶屏幕以及时钟芯片作为硬件基础。实现每天卫星自动校时,无论多久都会让铃声不差一分一秒。亦可以自动设置打铃时间,实现特殊情况特殊打铃,如:平时考试。


    • 2014/06 山东省机器人设计大赛

      山东省机器人设计大赛(三等奖)智能小车壁障。(非技术性失误:购买的劣质车胎,摩擦系数较低。比赛跑道和自己的跑道摩擦系数不同,车子打滑,导致比赛成绩不理想)视频链接

      机器人设计大赛


    • 2014/11 大学生创新基金

      同年9月份,获得计算机工程学院大学生创新基金1000元整。


    • 2015/06 “大乳山炸甩”电商网站

      自学JAVAEE技术,完成准创业项目“大乳山炸甩”电商网站。


    • 2017/04 个人博客

      为了更好的整理技术笔记、应用技术实践、记录个人生活,从前端到后端完成了个人博客的开发。个人博客主页:https://www.linshuaishuai.com
      该博客倾注了大量心血,在设计上进行了多次改版,全站未使用任何第三方模板,全部都来自于个人审美和灵感。除了jQuery和Bootstrap以外,全部CSS和JS都是一点点写出来的。
      后端代码进行了深度调整和优化,绝不是以实现功能为目标。关于本博客的详细路程,请点击博客做这么久了,谈一下感受吧查看,本人会不断完善与维护该博客。


  • 工作经历


    • 2014年11月 - 至今

      艾瑞(威海)信息技术有限公司 - JAVA软件开发工程师


  • 项目经验


    • PICO管理会计 2014/11-2015/07

      项目描述

      该系统主要是对日本软银下属公司C&S运营成本的计算,比如水电费。水电费基本上只能是以部门为单位,通过本系统可以把水电费通过一定计算划分到每个项目上,每个项目用掉了多少水电费从而得知项目到底是赔了还是赚了,当然更有细腻的成本计算。

      公司分为很多部门,每个部门还有下属的科等等,所有机构都要产生日常的开销,比如水电费、工资、进货资金、物流费等。每个部门当然也都有自己的收入。

      C&S主要分为三类大部门(日本称呼):营业组织、仕入组织、事业部。 其中,仕入组织是一类组织,具体有很多这样的组织,他们分别负责到一些企业去采购商品。相同的两个组织是不能采购同一个企业的同一个商品的;营业组织是负责把仕入组织采购的商品来销售给其他企业的加盟店。仕入组织虽然不赚钱,但是他所采购并且被营业组织销售掉的商品还会配赋到它身上。

      整个项目就是针对繁多的部门以及海量商品种类以及其采购销售记录进行综合处理,并根据每个部门的运营成本来计算该部门的盈利或亏损状态。

      使用技术

      这个项目是纯WEB项目,采用了MySQL数据库,服务器采用WebSphere,后台使用Struts2、Spring、Hibernate。当然该项目大部分逻辑都在数据库上,SQL语句量特别大,并没有采用Hibrnate本身提供的ORM映射。

      问题分析

      这个项目的batch跑的太慢,有时候跑一夜都跑不完。主要原因在于表设计的不当。 所有的表都是innodb引擎,建立的表都是索引组织表。为每个表设计了一个自增长的伪键,这样mysql就会将数据按照id集中在一起,如果用id检索那当然是很快的,但是程序中几乎不会用id去检索,最多用来关联表。

      从千万级数据中抽取100w数据量,基本上索引是起不了作用的,会做全表扫描,这速度可想而知了,如果用每条记录都有日期+部门+会计科目,为什么不把它们作为联合主键而要用没用的伪键呢? 每次batch都执行的是当月的费用,如果通过业务主键去检索的话相信一定会很快,即便是大范围数据量也是。 因此要善用数据库,没有了解原理只懂业务是不行的!


    • 个人资产相続税 2015/09-2016/01

      项目描述

      该项目为日本软银开发的HTML5应用程序,该程序可以针对用户输入的财产明细以及继承人数进行统计并且计算税额。整个项目分为4个模块:简易版、分配版、通常版、对策版。

      简易版是最简单的软件入口,并且将各项资金抽象到大范围的种类上,不需要明确每个继承人和本人的关系,程序根据法律默认的计算方法去处理。

      分配版是在家庭结构明确的基础之上,再详细输入十几项详细资金种类(因为不同资金种类产生的继承税额是不一样的),并且靠触摸拖动人物(本人的配偶、父母、子孙、兄弟等)进行人性化分配操作,根据详细的分配数额以及每种资金的分配数额进行详细计算遗产税。整个板块提供了三种家庭结构:本人-父母(含祖母)、本人-儿子(含孙子)、本人-兄弟(侄子)。

      通常版是也就是专业版,对各项数据的分类更为详细,包括各种不动产、房屋、死亡保险金(日本)、死亡退职金(日本)等。

      最后的对策版是对前三版本的基础上,采取一定的对策进行“减税”,一共分为4个对策项:购买死亡保险金等保险,生前赠予(会产生一定数额的赠与税),转化为不动产等。还可以对对策完的结果再进行重新分配,已达到税额的最低。

      使用技术

      该项目是运行在公司自己开发的HTML基盘(混合开发)上的,基盘是安装在iPad上的。采用HTML5、CSS3、JavaScript,数据库采用HTML5自带的IndexedDB,并利用了HTML5自带的Local Storage功能。

      问题分析

      这个项目的核心就是在金钱的数额打交道,单位虽然是万,但是数值要精确到小数点3位以后。而JavaScript中的数值number类型统一采用浮点型计算,学计算机的都知道IEEE754浮点数存储格式,因此程序的运行过程中由于割舍不当经常会出现误差。

      而后来的大部分BUG都发生在数值计算上面,所以在实际开发中,遇到此类问题,应该明确并合理利用Math对象的方法。


    • みまもり医疗助成 2016/06-2016/12

      项目描述

      由于当今日本老龄化严重,很多子女在外面工作,没有办法照顾老人。同时日本的邮政局是一个遍布全国的公司,邮政局可以到达每个最低级的行政单位,因此就可以服务到每一位老人。“医疗助成”这套系统就是为日本邮政局开发,他们为每个加入到这套服务的老人分发一台iPad(是真的iPad,这个项目是日本邮政局、苹果日本、IBM日本合作,我们负责开发)。

      iPad上安装了“医疗助成”这套系统,该系统拥有生活时间设定、健康确认时间设定、服药确认时间设定、外出状态、今日一言、地域通知、邮政局通知、趣味娱乐等功能。整个系统分为4部分,老人版(iPad)、家族版(移动HTML5)、呼叫中心版本(Web)、后台管理(Web)。

      生活时间提供了11个主要时间戳、健康和服药确认是根据这11个时间戳为标准进行添加,当然不局限这11个时间点。设定完以后,程序会按照既定的设置提醒老人吃药,并及时反馈健康和服药情况到后台,如果老人未及时确认,系统会每隔一段时间PUSH一次通知,一共进行5次,5次以上还得不到通知,就会向关联的人员发送邮件。老人的子女就可以通过家族版的系统及时了解情况并未老人添加其他时间点的健康或服药确认。系统还可以向老人发送一些紧急通知,地域通知等,还提供了趣味娱乐功能。

      呼叫中心版本是为日本邮政客服使用,他根据老人iPad发送来的数据,进行分析查看,服务人员会及时根据情况对老人进行详细的服务。可以说他是对老人健康数据的后台管理。客户如果不会使用系统,还可以联系客服,客服使用“呼叫中心”版本进行前面所述的设置。 后台管理版本则是给不同地域行政级别的管理员使用的,使用它能够对用户级别、管理员级别进行统一管理。管理员可以使用它来发布一些通知、设置一些生活提醒等。

      使用技术

      iPad端采用了Swift语言,后端则是分工程的,呼叫中心版本采用的是JAX-RS、后台管理采用的是SpringMVC、Spring、Hibernate。前端采用的是jQuery、Bootstrap。SSO单点登录采用的是OpenAM,使用Apache做负载均衡。分布式问题不是由我们项目组负责。

      问题分析

      这个系统比较综合复杂,拥有很多子系统,每个模块的业务有相互交错,一开始没有对整个业务进行整体把握,只顾完成自己负责的子系统,导致业务上的BUG很多,整个项目组是共同合作完成,必须相互了解每一块业务才能有条不紊的向前推进。

      数据库的设计方面依然存在问题,多种数据统一放在一个表里面,会导致该表的数据爆炸式增长,这势必会大大降低数据库的操作效率。而且没有对表的数据进行备份操作、也没进行按月管理。没有在索引这方面下很多精力,不同业务有不同的操作,对每个字段的依赖也有差异。


    • 健康促进 2016/12 2017/02

      项目描述

      健康促进可以管理企业职员健康诊断信息、鼓励利用者进行运动健身的一套系统。他的一部分功能类似于“微信运动”。这套系统是日本邮政和日本通信公司DoCoMo合作运营的。

      DoCoMo公司拥有自己的硬件资源,比如手机、腕表等。利用者穿戴这些设备,每天会产生很多活动量和步数细节的数据。比如:脂肪燃烧量、步数、步行时间、步行距离、体重、体脂肪率、BMI、基础代谢等等一系列数据,利用者还可以手动输入一些身体指标类型的数据。

      这套系统通过批处理程序调用DoCoMo的API获取这些数据,然后进行保管和后续处理。利用这些数据可以分析每个利用者的运动和健康情况,然后系统及时联系反馈每一位利用者,督促和提醒他们运动、注意保持健康等。

      这套系统的另一方面就是管理企业职工健康诊断数据,健康诊断数据就是去医院体检的各项指标,个人利用者和企业的管理员都可以手动输入这些健康指标。呼叫中心(Caller Center)系统会结合这些健康诊断数据,对利用者进行健康的督促工作。

      该系统分为两个大部分:WEB部分和Batch部分。上面所述的功能都是有WEB实现,数据在多家公司多套系统上传输,以及不同数据格式的转换则是由Batch负责的。

      使用技术

      后台采用SpringMVC、Spring、Hibernate。前端采用的是jQuery、Bootstrap、UI是我们自己设计的。

      问题分析

      我所负责的是Batch部分和部分WEB部分,前期80%的时间都是在进行需求的抽象以及框架的编写,以应对丰富的的业务逻辑。因为Batch不仅仅是数据的导入和导出操作,还有很多check、关联check、特殊处理等。框架完成后,其他业务只需要实现一些实现类,配置一下配置文件,就可以完成。
      为此在前期占用了大部分时间,这真正的开发中是不能完全追求那种纯粹的完美,任何思路和想法的实现,都不能耽误项目进度。在项目进度保证的前提下,可以对代码进行优化和改进。


    • みまもり医疗助成2期 2017/05 2017/09

      项目描述

      みまもり医疗助成2期是对1期项目中的一些业务进行改进,以及新功能的追加工作。为此我们先后去日本出差两次,到客户现场进行交流测试,日本邮政对我们的工作给予了高度的认可。


  • 自我评价


    • 大学即将毕业,由于自己缺乏对就业的认识,以及不敢面对就业,不得不盲目地走上了考研的道路。正在发现这条路不对的时候,被现在的公司通知面试(期间尝试的投递了简历)。面试很顺利,我被录用,从而放弃考研。

      来到公司,粗略的学习了HTML、CSS、JavaScript,后来一位伯乐的指引下,自学了JavaSE、JSP+Servlet、SSH框架、JavaEE、MySQL数据库(底层原理略知一二),并在毕业设计,独自完成了一个购物网站。当时凭借着满腔热血想要上线网站,回家创业。但是由于资金问题,加上高并发和数据库优化等技术原因而不得放缓了这个计划。

      作为一个学习硬件的毕业生来说,通过自学不断超越了身边其他经过各种培训的软件专业的实习生。经常为他人解决各方面的问题,我感到很骄傲。从在校期间自学单片机到工作中自学Java EE,我喜欢自学自己感兴趣的技术,感觉自己自学能力较好。这一切都源自于极热爱追究原理的硬件精神和对新知识的思考,没有这两个因素,学习大部分技术都只会停留在表层API上。