PHP是做前端还是后端?
php是后端语言。
因为php是一种通用开源脚本语言,是在服务器端执行的脚本语言,服务器端是属于后端的。当然,PHP的功能不止于输出页面,还有逻辑层,服务层和DAO,或许还有读写文件,消息队列,事件机制等等。严格意义上说,PHP做后端的事要比前端多很多。
怎样在Linux下编程?需要什么技术?
由于某些特殊的历史原因,国内开发者还是以Windows系统为主,这跟国外在Unix哲学下成长起来的开发者群体不一样。
不过这两年Linux在国内开发者群体中的欢迎程度越爱越高,要知道连Windows10都有了Ubuntu/Debian/fedora等Linux发行版作为Windows10的Linux子系统,那么想要在Linux下编程,需要掌握哪些知识呢?
为什么要在Linux下开发?
二十年前你在Linux上学习的编程知识,基本上现在还能用,不过五年前你在windows上学习的编程知识,也许大部分现在已经用不了了。
绝大多数服务器环境都是运行Linux操作系统,大部分开发者写的程序,最终都是要在Linux服务器上运行的;绝大多数的开源软件会优先适配Linux平台;很大比例的第三方库只会登陆Linux平台。Linux开源、免费、高效,Linux能够给你最大的可能性,Linux给了你一大堆最为原始的工具,你可以用这些工具组合成专属于你自己的高效工具库。
Linux下各种开源环境应有尽有,各种shell拿来就可以用,跟Unix保持了很好的血缘关系,Lisp/Python/Java/C/C++/PHP/Ruby等各种各样的环境拿来就可以用。
visual studio是银河系最好的继承开发环境,但是Windows却没有因此成为最强的开发者生态。
Linux编程需要掌握哪些知识
想要在Linux下熟练编程,你必须要学很多专业技能。
熟悉Linux命令
Linux的精华是命令行,你必须熟练使用命令行进行日常的工作、学习,Linux上有各种各样的shell命令,bash、sh等命令应有尽有。
你还得熟悉在Linux上通过命令行安装软件、搭建开发环境、完成文件管理,对于代码调试、编译等等。
熟练使用vim/emacs
在Linux编程世界里,不会使用emacs和vim是可怕的。
emacs号称是“神之编辑器”,vim则被称为“编辑器之神”,这两款文本编辑器都是Linux下开发者的重要编程工具,丰富的插件让这两款编辑器非常强大。
看一些Linux的书籍
《鸟哥Linux私房菜》、《深入理解Linux内核》、《Unix环境高级编程》、《Unix网络编程》、《Linux程序设计》、《深入理解Linux内核》等,这些都是Linux/Unix下的经典书籍。
Linux下编程其实非常方便,Linux下了有完整的编辑、调试,编译,打包一栈式工具。
当然需要有前提熟悉linux常用命令、熟悉shell环境、能适应纯命令行终端的使用(Xwindows环境不咋成熟,不建议)。然后虫虫给大家说说Linux编程的一些技术:
终端编辑器和插件
Vim:vim是最常用的Linux编辑工具和linux IDE环境的母体,使用vim配合一些插件完全可以实现现代IDE环境下的绝大多数功能。
推荐组合:
主题:molokai(github:/tomasr/molokai),vim-colors-solarized
插件:YouCompleteM自动补全(github:/Valloric/YouCompleteMe)
浏览目录结构的插件nerdtree(github:/crooloose/nerdtree)
其他有益插的vim工具推荐:
vim-surround:删除、修改和添加 括号、引号、XML操作。
matchit:用%在字符间跳转。
tComment:快速注释、反注释代码。
tabular:对齐。
snipmate.vim:代码片段。
vim-easymotion:定位。
vim-instant-markdown: Markdown文档时预览。
Emacs:
emacs是*unix体系最大强大的编辑器和操作系统(几乎可以做任何事情)
emacs常用的插件推荐
spacemacs vim和emacs功能的优势集合;
dracula-theme 很靓的主题;
更多的可以看github的这个仓库awesome-emacs(github :/emacs-tw/awesome-emacs)
调试debug
linux有强大的调试工具gdb。GDB可以让你调试一个程序,包括让程序在你希望的地方停下,此时 你可以查看变量,寄存器,内存及堆栈。更进一步你可以修改变量及内存值。原生支持c、c++、Fortran,rust、golang,通过插件可以支持其他语言。比如基于浏览器的扩展gdbgui(github:/cs01/gdbgui)
链接和编译工具Make
make是*nix下最强大的链接和编译工具,基于Makefiles的配置可以实现对大规模项目的自动编译和编译,可以大家减轻开发人员的编译劳动。
窗口和分屏工具
screen、Tmux和byobu等工具也是码农们必不可少的工具,这些虫虫文章中有过专门介绍,在此不再赘述。
更多
基于需求和码农的语言环境,Linux下也有大量的工具来满足需求,这也是虫虫文章涉猎的领域之一,关注虫虫可以学习并且接受虫虫最新文章介绍。
其实和Windows下面编程流程差不多,唯一的区别就是你需要先熟悉一下Linux环境(毕竟没有Windows使用起来那么方便),其次,还有就是你需要熟悉一下常用的shell命令及vim等编辑器,下面我简单介绍一下:
- 了解一下Linux的目录结构:这个是了解Linux的基础,根目录下面都有哪些目录,每个目录都是干什么,常用的配置文件(网络IP、环境变量)都在哪,常用库都在哪,这个都需要了解掌握:
熟悉常用的Linux Shell命令:这个是使用Linux的基础,像常见的ls,cd,find,mdkir,rm,top,grep,sed,awk,su等,简化版的Linux就只Terminal终端而已,如果你连基本的命令都不会,就不要想着还能操作Linux:
熟悉一下vim,emacs等编辑器的使用,可能在迷你版的Linux下,就只是一个vim编辑器,你所有的编程工作都只能在这个环境下进行,wq!命令,这个你会经常用到,如果是桌面版的,可能还有相关IDE可供使用:
最后就是编程了,这个根据自己的编程语言安装对应的包或编译器就行(gcc,java,python等),无非就是vim编辑,命令行编译,调试运行而已(和windows平台可能会有差异),开始使用起来不舒服,后面熟悉后,也就没啥了,当然,有些IDE是跨平台的,也有Linux平台的版本,使用起来和windows的差异不会太大:
就分享这么多吧,可能有些乱,初学编程的话,如果对Linux不熟悉的话,建议还是在Windows环境下面进行,使用起来能更方便一些,熟悉后,可在Linux下面进行,当然,直接在Linux下面也行,不过有个熟悉的过程,建议初学者,还是下载一个桌面版的Linux,不至于直接一个终端命令行,使用起来很迷茫,不知所措,以后很多服务器都是基于Linux平台的,Linux的应用也很广泛,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言。