基于.Net进行前端开发的技术栈发展路线(三)

前言


上一篇《个人技能树二》文章分享了个人技能中的前端技能和Java技能,今天继续跟你们分享的就是后端技能了。前端



个人技能树




我当前的技能树:

个人技能树

其中,标注为黄色旗帜的是基本掌握,标注为红色旗帜的为使用熟练。未标注的只是了解。vue



数据库



个人技能树

数据库jquery

数据库是信息化系统编程的基础。由于我一直是作信息化系统的,因此这一块比较熟悉。最初熟悉的数据库是基于PB开发的Sybase,SQL Anywhere,如今已经不流行了。后来转到了SQL Server,再后来转到了Mysql,而后又熟悉了Sqlite。如今经常使用的数据库是Mysql和Sqlite的组合。这样选择的主要缘由仍是由于使用的人多,还免费。如今用这两种数据库也基本够用了,Mysql主管理系统端应用,而Sqlite主小型程序应用和Web前端应用。
对数据库的掌握,须要哪些基本知识点呢,我认为这些是必须的:sql

  • 标准SQL语法:掌握SQL语言中的DML,DDL,包括CRUD,多表关联,分组汇总等
  • 数据库性能调优:须要掌握对索引的基本理解,经过SQL执行计划对SQL语句进行优化。能够说不懂索引的话,就等于不会数据库编程,这样的系统是没法投入实用的,只是个玩具。
  • 数据库管理:初级DBA的一些能力,好比数据库对象的权限管理

ORM数据库

ORM我使用Entity Framework(EF)和Dapper,一个重量级,一个轻量级,适用于各自不一样的应用场景。我曾经对是否使用ORM很纠结,由于ORM确实对系统性能是有影响的。但后来我想开了,机器是为人服务的,咱们使用ORM的目的,是为了解放人,可以使解放人释放出的红利,能覆盖机器开销增大而增长的成本。这个帐,整体是算的过来的,不然ORM就不会流行了。同时,咱们也要尽量好的使用ORM,要细心研究,合理使用,使得ORM对性能的影响在可控的范围内尽可能小,若是只作到菜鸟级别的使用,那多是得不偿失的。
随着ORM的流行,我已经不多直接写SQL了。不过我也不喜欢EntityFramework的导航属性,以为使用它时限制感比较严重,并且性能问题也比较明显,因此个人我的偏好的方式是,用“写SQL”的方式使用ORM,也就是使用LINQ,既利用了我对SQL熟悉的能力,也用上了LINQ的灵活性。
对于EF和Dapper的选型,我通常是:若是是作的是“产品”,那么使用EF,因此即便它只是一个单机版的小的系统,若是它是产品,我也会用EF+Sqlite来实现。而Dapper用于实现“接口”,好比产品系统要和外部系统对接,外部系统是项目型的,它的模型是不肯定的,所以很是适合使用Dapper,一方面在外部接口端直接写SQL,在代码端又能用上对象化编程模型,两端的编程都获得了方便。编程

Ado.Netbootstrap

对于传统的Ado.Net的使用,我如今已经不用了。对Ado.Net的了解,我只是在学习C#的时期,做为练手缘由写一些demo,现实应用中已经彻底没有必要使用它了。和它一块儿能够完全淘汰的有:DataTable,DataSet。因此,但我看到仍是使用DataTable的同窗,我不由想劝TA:该进步了同窗!后端



设计模式



个人技能树

为何要学习设计模式呢?其实对我来讲,不能叫“学”,而是“了解”设计模式。在了解设计模式以前,我一直是按本身对OOP的本能理解在进行设计和开发。所谓“二十一种设计模式”,“二十四种设计模式”,源头都是来自于Java界。当我看到这些提法就有担忧,本身的设计是否是遵循了设计模式的基本原则?有没有可改进的空间?所以以为须要对设计模式有个全面的了解。
对照看过基本设计模式的书,一方面确实开阔了眼界,另外感受对本身的实际编程帮助有借鉴,但其实也不大。一个缘由是,本身平时的设计中,其实基本遵循了设计的一些原则,和某些设计模式相似。好比:工厂、单例、外观、装饰、组合等,本身下意识的就在用。另外,一些不经常使用的设计模式,本身其实平时也不会用到,缘由多是本身平时写的不是须要发布的那种第三方的类库,而都是项目的类库。这些类库,都是为了解决现场问题而设计的,而不会为了实际中没有发生的需求而进行预先设计。因此就没有必要精雕细琢,增长当前不须要的设计,这样对要遵循某种设计模式的必要性就下降了。
虽然看过设计模式的书后,如今我在编程过程当中,大部分设计模式都不会有意识的去用,都仍是凭对OOP的基本理解,代码怎么简洁,怎么容易阅读,怎么方便扩展这些基本原则来考虑,不会强求套用设计模式。我以为这个思路也是对的。若是作什么设计都要去套用设计模式,可能拔苗助长,搞出不三不四的设计架构。不过无论怎么样,不按期的回顾设计模式,将对设计模式的进一步的思考更好的融入到本身平时的设计中去,本身其实作的还不够,也须要增强。
我当前在产品中,用到的设计模式,我能想起来的,可能包括:简单工厂模式,单例,组合,桥接,外观,装饰,代理。设计模式

讲到这里,经过总共三篇文章的讲解,我也对个人整个技能进行了梳理,对本身的技能的进一步发展,也有了更清晰的规划,那应该包括:微信

  • 熟悉ionic:掌握包括angular,cordova这些跨平台的前端开发模式
  • 应用vue:如今vue愈加流行,虽然前端我采用了angular,但能够将vue应用到个人产品后端,将传统的bootstrap+jquery+knockout的技术组合升级为bootstrap+vue的组合。
  • 须要必定程度的增强Android下的Java开发,学习IOS下的开发,能开发基于各平台的cordova插件
  • 不按期的回顾设计模式,将设计模式的优势内化为本身的能力。



在学习过程当中,我在网络上收集过一些学习资料,在通过阅读后也甄选出比较经典的一些资料。有须要的朋友,能够在后台回复关键字“获取技能树”,可得到包括《C#高级编程》第七版,《Java编程思想》第四版,和《大话设计模式》的下载连接。





欢迎关注本人微信公众号,更及时的关注最新文章(每周多篇原创文章,以及多篇专题文章):

微信公众号 扫描二维码关注

相关文章
相关标签/搜索