首先需要了解一些新概念,比如 SSH,FTP ,>
windows平台可以看看《Windows Server 2003服务器架设与管理》。
作为推荐,这里我主要还是推荐自己仔细研读过的书,而我读过的书中某些可能已经很老了,甚至内容已经过时了,因此,这只算是抛砖引玉,大家可以选择类似的更新、更权威的书籍学习。
基础知识主要包括:语言。这里之所以拿出来说,是因为某些语言可能导致你使用完全不同的思路来设计服务器。一般来说,C/C++、Java、C# 之类可以归为一类,而 Go、Erlang 和他们区别很显著。关于语言的经典书籍太多,这里就不说了。
网络。想了解协议底层实现,可以看《TCP/IP 详解 卷2》。上层开发时,Windows 下可以看《Network Programming for Microsoft Windows》,Linux 下可以直接看看官方相关的 API 文档。Windows 下 IOCP,Linux 下 epoll(其他类 Unix 下的技术类似)是需要掌握的。实际开发中,网络库可能自己实现,也可以基于某些开源库开发,所以,无论是出于学习还是使用目的,都可以研究一下开源库,例如 libuv、libevent、boost ASIO。
*** 作系统相关。类 Unix 系统比较好的书籍就是《Advanced Programming in the UNIX Environment》了,Windows 下则可以看看《Windows核心编程》。系统相关的最核心的东西可能就是线程、进程,以及相关同步的内容了,看看《Multithreading applications in Win32》挺不错(包括类 Unix 系统下的开发者)
数据库。主要看你选择 SQL 还是 NOSQL。基本上搞搞 mysql、redis 不会错。
一些思想。光会各种技术是不能写出好的代码的,可能还需要学习一些更抽象的知识,所谓的一些”哲学“或者开发的指导思想。比较推荐的是《UNIX 编程艺术》,还有一本书《精益思想》,这本书和编程完全无直接关系。
《网络游戏核心技术与实战》日本人写的网络游戏服务器端开发的书, 结合游戏开发讲到了服务器端的方方面面, 但是相对的可能不够深入 适合入门, 对游戏和技术有更好的理解 然后就可以针对特定的技术领域, 比如网络, 数据存储等找专门的书来看了 单纯从技术角度而言, 基础的东西并没有太多的不同 只是网络游戏服务器端的应用领域相对狭窄, 所以市面上专门的书籍并不多。
服务器的日常维护方法:步骤/方法
经常更改系统管理员密码
定期更新系统补丁
检查系统是否多出超级管理员,检查是否有帐号被克隆
在“开始”>运行中输入“cmd”>在输入 net localgroup administrators
在“开始”>运行中输入“msconfig”检查随机启动的程序和服务,关掉不必要的随机启动程序和服务。
服务器上的所有程序尽量安装程序的最新稳定版。
检查SERVU是否被创建有执行权限的用户或者对C盘有读写权限的用户,并且给SERVU设置一个登录密码。如果需要请给serv_u设置独立启动账户。
不要安装任何的第三方软件。例如XX优化软件,XX插件之类的,更不要在服务器上注册未知的组件。
不要在服务器上使用IE访问任何网站,杜绝隐患那是必须的。
检查系统日志的“安全性”条目,在右侧查看近期“审核成功”的登录
不要在服务器上双击运行任何程序,不然怎么中了木马都不知道。
不要在服务器上用IE打开用户的硬盘中的网页,这是危险的行为。
不要在服务器上浏览,以前windows就出过GDI+的安全漏洞。
及时的更新病毒库,查杀病毒。
定时的查看系统各个盘符的磁盘权限,是否为设定的安全权限。
确保你自己的电脑安全,如果自己的电脑不安全,服务器也可能不太安全。
注意事项
要经常性的检查自己的电脑,以免透过远程连接到服务器,进而成为攻击的目标这个问题有些笼统,一个完整的app有简单有复杂,不同的app应用功能的差异也导致不同的技术实现或者算法模型。大体来说,一个app从设计到最终实现需要懂得以下几个必要方面:
1、前期需求规划与信息、交互设计——需要制定出一个完整的需求文档,功能文档,流程图,时序图。
2、交互设计、UI设计——设计出基本且完善的原型图和app基础的交互设计效果,之后再根据这些设计出完整的UI界面并学会切图,一些需要做自适应的素材需要做点9patch。 这里还需要懂得px,pt和dp之间的换算,屏幕密度的换算和相互之间的系数,以便app能完美适应不同分辨率设备。其中交互设计需要懂得很多人机 *** 作的技巧经验,掌握Axure等交互工具的使用,UI设计需要掌握Photoshop和Illustrator等 *** 作。
3、使用ADT之类的开发环境进行app开发,最基本的也得掌握java语言,熟悉android环境和机制,这里面涉及面广,请根据项目自行学习相关知识。
4、如果不是单机版的app,需要用到服务器,那还得掌握WebService相关知识和开发语言,常用的有ASPNet,PHP,JSP等。
5、熟悉并能开发数据库。
6、某些功能需要做算法,这还需要一定得专业知识,尤其是数学基础。
7、熟悉API接口开发,这里包括自行开发API的能力以及调用第三方API的经验。
8、熟悉TCP/IP,socket等网络协议和相关知识。
9、熟练掌握App发布的流程,真机调试技巧,证书,打包,上架。
App开发其实不一定适合一个人搞,太费劲,除非是一个单机版的小应用,或者利用现成的api开发简单的第三方应用,否则还是让一个团队来完成各自擅长的领域。Linux服务器非常好学。只要你想一想:坐在电脑前,打开黑窗口,啪啪啪不停的敲命令。那种感觉是不是很爽?当然,如果你愿意,可以转变黑客哦!我以前曾看过lamp兄弟连的李明老师曾经出过一期Linux服务器的视频,百度应该可以下载到。这个人很牛逼,让我这个学Linux学了三年的人依然很崇拜他!
至于看书,纸质的我个人认为看不下去。pdf文档就更容易让人发困了。我还是觉得边看视频边练习,再时不时的暂停视频来记录笔记。非常重要!!!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)