看了一些回答,感觉还是挺有局限性的,多数都是前端开发者,至少说下使用的各个技术的框架吧?会说的可以分享点各个技术的优缺点嘛。。
本人不才,就以10年的浅薄开发经验来简单说说这些年的那些项目技术选型吧。
从高中开始,08年左右,毒奶粉还没上线,还是网游小说很火的年代,完全封闭的校园生活很无聊,就自己构思游戏情节,周末放假半天去网吧捣鼓RM,一开始不懂代码,凭借还不错的英语底子,大概能读个一知半解的ruby,开发了一个小demo给同学玩,5分钟线性流程的那种,
UI: IDE编辑
脚本:RUBY插件
点评:老版本(XP)的地图层3层+事件层(下图所示为事件编辑模式)的概念觉得设计的非常nice,也算是编程/设计的启蒙了,跟着66论坛的大佬们淘弄各种插件(伤害分割/跳伤,45°视角战斗等),输出客户端为exe可简单加密/混淆,16年左右托同学在海外帮忙买了RMMV的 licence补的票,中间vx,ace都没太习惯,MV也是因为输出对象是H5,方便各种嫁接,直到后面又捣鼓会了点canvas的webgl。。。
这个是做2d动作游戏的,里面各种编辑器,也是特别实用的,如下图所示:精灵编辑器,可以修改一张游戏角色图的颜色偏移;也可以分割一张雪碧图成多图
UI: IDE编辑
脚本:GML语法脚本
点评:很多实用工具至今还在使用,不过陆续已经仿制到我个人的工具里了。游戏导出文件类型为exe
都是使用游戏内置工具制作,CS除了地图上的装饰物和建筑,最主要的是要“跑点”,把所有可以到达区域都跑一边,这样ai就会自动寻路到这些个区域,WAR3的地图制作,就比较复杂了,内容比较多,在不会JASS 的情况下,制作一些复杂逻辑比较累手。
当然Unity也没少得了我的霍霍,从3.x接触开始挂脚本,到我读到了《大话设计模式》和《设计模式与游戏完美开发》两本书后,整理重构了自己做的moba类游戏,设定游戏主循环,控制每帧处理细节。那时好像也没什么框架,都是导出的.unitypackage。
点评:unity迭代速度很快,另有优秀的asset store,上面框架很多,不过为了产品,我还是选择自己造轮子了。
说到moba,肯定少不了服务器,个人还是习惯用c#,所以用c#的类库工程框架(自己编写的扩展工具类)+ 控制台应用程序结构,分别设计了包括 网关服务器,授权服务器,中心服务器,聊天服务器,大厅服务器,逻辑服务器(战斗服务器)等6个服务,并且为了保障低ping,通过Udp进行通信,redis做数据缓存。另外,为了能方便管理,服务上层套了一个管理员服务,连接到后台管理页面,负责重启,停止,数据统计等信息的记录,也可以通过后台页面操作实现分服等操作
后台:java(3大框架ssh)----传统前后端不分离
前台:jsp/js/css
数据库:oracle/plsql
点评:个人认为那个年代java的发展各种xml配置项太多了,心累
后台:C#(MVC.net + EF)----传统前后端不分离
前台:Razor视图引擎(类似jsp,asp写法的强类型视图模型,视图引擎本身并没有现代框架(如R...、V...、A...)那样完整的组件化支持,但可以通过部分视图(Partial View)、HTML辅助方法(HTML Helpers)和Razor组件等方式来实现类似的效果。)/js/css
数据库:MSSQL/stored procedure
点评:个人第一个完整的技术栈,只不过生态不太好,陆续引用了太多前端库非常臃肿,后台C#的好处自然有很多,比如linq技术,数据库采用了存储过程进行处理,好处是数据库阶段就把数据过滤差不多了(查询模式),更新或插入也能很好的做执行前的各种判断,而且修改了逻辑无需重新部署到后台(安全性差点)
后台:C# MVC+EF
前台:Razor + js/jquery/bootstrap/css
数据库:MSSQL-TSQL/Stored Procedure
其他:OSS(静态资源),小程序端(WXSS,JS,WXML)
点评:上面完整技术栈的实际应用,使用ef的好处是可以在已有数据库结构的前提下,秒级出curd(增删改查)4个页面。个人在彼时还不了解其他前端技术的情况下,已经可以利用razor的视图引擎+C#的扩展方法,将部分常用组件组件化了,如登录模组框和各种弹出框。ps.因为是个人博客,所以很多业务页面做出来了,但是没有内容的填充。
后台API:java(spring boot,mybatis)
前/后台:php(laravel)/js/jquery/layui/css----流行的前后端分离(RESTful)
数据库:mysql
其他:OSS(静态资源),小程序端(WXSS,JS,WXML)
点评:都说php是世界上最好的语言,用过之后,某些方面(可弱类型的原因?)确实还挺效率的,这个时间也是第一次接触RESTful api的概念,之前只了解过WASM技术来着
后台API:java(spring boot,mybatis)
前台:vue2/js/scss----流行的前后端分离(RESTful)
数据库:mysql
其他:OSS(静态资源),小程序端(WXSS,JS,WXML)
点评:vue2和小程序,差不多可以复制粘贴,Ctrl+H 一键替换标签,这个阶段接触新型语言已经能很快的接受了,并且也确实更符合个人的变成习惯
后台API:java(spring boot)
前台:angular + ts +css----流行的前后端分离(RESTful)
数据库:oracle
点评:angular和vue差不多,除了语法略有差异外,其他都是ts各种库的因素了
后台API:.net core api(mvc)
前台:vue3 + elementUI+ js +css----流行的前后端分离(RESTful)
数据库:MSSQL-TSQL/Stored Procedure
其他:OSS(静态资源),小程序端(WXSS,JS,WXML)
点评:自认为技术掌握非常熟练了,熟悉了vue3的语法糖比vue2好用太多了感觉,似乎又回到了体力活的阶段。不过,相对来讲我更喜欢搞一些功能性方面的东西(如,图像编辑,游戏ai算法等),有很多之前用其他语言写的小玩意,也陆续再重制进去。
前/后台:C#.net/http://VB.net(WPF,winform)
数据库:-
点评:WPF和winform比较适合制作桌面应用,如360,百度网盘那种客户端,相对winform来说,wpf的ui更好看一些,因为是类似xml的文档形式,所以写起来和写配置文件一样,烦躁。。。所以学生时代用这个复刻了一些经典游戏(jigsaw tetris, chinese cheese ...)
值得一说的是,因为可以调用windows api,所以部分内存挂也是比较方便做的
隶属于微软全家桶里office插件的开发,为很多企业和个人开发了一些有意思的插件,如发送邮件前的拦截工具(检查附件,收件人,标题是否合规),邮件中收到特定格式的邮件,自动下载附件中的excel,读取其中用户手机数据,到特定网站上批量注册
落伍的技术,不过在我们这边还能混口饭吃
写累了,有缘再续更,最后附上书架一角。