作为一名从软件工程师出身的产品,一个软件或者产品的上限是由开发者和设计者本身的综合素养和能力决定的,而下限是由团队的综合效能的产出去决定的,君子不器体现了以人为本的核心思想,善假于物是在了解了工具和问题的特质后,采用合适的工具和方法,提高我们的效率,构建自己的核心知识体系,并且应用到工作中去解决实际问题。
同时,君子不器 成己达人。感谢CSDN的这次工具分享活动,提供了来自各个行业的创作者一个交流的机会,通过交流和对比印证,学习到了很多实用的东西:
一个人也许走的很快,但是一群人才能走的更远,再次感谢所有参与本次活动的创作者,对本人认的知边界的拓宽和以及后续实际工作中可能面对的未知场景有了一个新的理解。
从产品落地的角度去看软件开发,Coding可以是即兴而且充满了天马行空的想象创作,又是一个项目型管理工程化结构为设计和构建导向的精密协同开发过程,尤其是如今前后端分离式开发的模式,更是彰显出无尽创意的洒脱与精密严谨的工程融合之美。本文从开发者个人和团队综合效能提升和软件产品开发落地的几个过程,对工具分类做了一个梳理和分享,由于个人能力和阅历有限,如有不足之处请多谅解和指正:
人生和Coding是一个长期的过程,综合类的工具帮助我们解决如下几个实际的问题:
综合类的搜索引擎很多,但是这是第一款专门面向对开发者的辅助集合工具。集成了很多实用的小工具和主流开发者IDE工具,同时具备面向问题的代码和文档检索功能,已经达到实用化阶段,虽然功能还有改进和提升的地方,实用工具库还有待收录的部分,但是潜力巨大,专业的事交给专业的工具,而且目前完全免费,因此推荐。
在一个信息爆炸的年代,不管是你要进行接口测试,json格式化,安装一个新的IDE,还是去查找一个Bug或者报错的问题,又或者查阅一些电子版资料和好的技术文章,一个命令和语法没有记忆清楚,传统的方法是打开百度搜索,但是页面内被插入了大量广告和营销号,极大的影响了我们的体验和增加使用成本,现在猿如意的出现解决了如下几个问题:
1.实用化的集成了效率的轻量级小工具:
比如:
toto进行日程安排,
postman,
前端各种机型屏幕尺寸等,
jeson
等实用小工具,无需再次搜索安装,开箱即用。
2. 针对开发类工具合集:
从后端到前端市面上常用的开发IDE都可以找到,无需在记住各种官网,不用担心被植入各种广告和木马,省心省力。
针对开发者,不用再去查一堆软件的官网,然后再去下载,常见前后端开发工具直接下载安装即可。
3. 免广告和营销号的文档和文章搜索工具
针对开发者,不同再去豆瓣百度文库等地方搜索,直接在猿如意中搜索,相关的博客和电子书籍应有尽有。极大的提高了检索效率和时间成本。
4. 针对新入开发者一行代码提示功能,便于学习和查询
只要是软件开发相关所有岗位,在软件研发的整个生命周期中,各阶段都要输出大量各种文档,虽然常用的有各种专业化工具,包括但不限于石墨文档等,但是频繁的切换和检索,不同文件制式的转化也是个很头疼的问题,WPS就是这样一款这种能够极大提高效率的文档集成化输出工具,来帮助我们解决研发工作、管理、分析、汇报和学习中各种文档问题。
我们在软件项目的各个阶段需要编制各种计划,并通过输出标准化的文档来进行约定,降低软件开发项目的风险。
不管是项目的立项和启动阶段
又或者项目的方案设计阶段:
我们可以使用WPS里面丰富的预制模板快捷的进行:
产品信息架构图设计
绘制业务流程图
整理思维导图绘制来拆解问题和需求,以及功能清单等:
编制项目计划的SOW进行项目预算编制和项目全过程管理
并且在线编辑团队文档,协同作战
还有其他的UML图和接口文档以及测试原型报告等等。同时在国产操作系统中,WPS也能够正常使用。
感谢WPS,给我们整个软件开发全生命周期提供全方位的文档编帮助,不用在进行繁琐的软件切换和文档制式转换,同时云文档工具及协作功能,极大的提高了我的实际中的工作效率,从安全性,协作性和效能提升等几个维度都有了明显的提升。
它不仅仅是一个记事本,更是一个知识管理软件,可以做很多事情,包括网页收集、MHT 编辑、HTML 编辑、电子书制作等。 但网文快捕过于臃肿,不可以称为移动互联网作品。
为知是一个轻量级的笔记软件于是软件开发团队与时俱进的开发了为知笔记这款轻量级的笔记软件。作为一款轻量级的笔记软件,为知笔记在继承了原网文快捕的强大的笔记编辑功能的同时,有几个重要的特性:
第一,相较于网文快捕,新的软件的界面更清晰,操作更灵活。
第二,引入了云的概念,开发了多平台、多终端的产品线,充分满足用户随时随地的笔记记录与管理需求。
第三,良好的树形结构和缩略图,可以更好梳理整个知识体系。
第四、个性多样化话笔记功能,包括学习时的康奈尔笔记,记录生活和重要事件的9宫格笔记,以及常用的撰写Markdown笔记等。
树形和目录具象化的知识体系管理,同时支持网页和文章外链等功能,作为外脑辅助
9宫格矩阵化呈现的日程列表以及日记式总结
还是使用康奈尔笔记记录读书心得和学习笔记
更或者使用Markdown笔记进行归纳输出
从产品视角来看,软件开发是一个以用户的需求为中心,项目型工程化去解决问题的循环迭代过程,下图省略了客户营运和服务部分,统一归纳到需求入口:
下面就从产品视角,采用系统化思维,将研发流程中所涉及到几个岗位常用的高效能工具进行一个简单分享:
作为一名产品,都明白一个好的产品一定是“有用的、好用的、用过还想用的”,因此,应用设计思维,其中最重要的交互性大概可以总结为下面这几点:
__
墨刀是一款国产打通产设研团队,实现原型,设计,流程,思维导图一体化的在线协同工具。全新版本聚合四款工具的创作与管理,包括「原型」、「设计」、「流程图」、「思维导图」等主要工具。
一款更偏向于“交互向”的原型设计工具,简单易上手,更符合团队协作的设计工具。早期大部分用户使用的是web版本,简单高效的制作APP端交互,快速的可以放在手机端进行演示和体验,真正的让产品体验放在研发之前,提前确认效果,降低研发试错成本。
完整的设计工具和素材库,帮助产品岗和UI设计岗沟通,快速设计并迭代。
完善的中文帮助文档,平滑的学习曲线使中文用户上手快,迁移成本低
刚入行产品的时候,花费了大量的时间去学习原型设计工具,尤其AXure的操作和使用,但是在与美工,前端讨论界面设计方案和控件的样式等总是找不到满意的视觉效果。
后面接触墨刀后,快速上手并应用到实际工作中,主要解决了如下项目中的实际问题:
dataV是阿里云出品的拖拽式可视化工具。
身为一个To_B的产品,日常还有售前支持的职能,BOSS告诉你,后天要去XX客户高层拜访,洽谈项目做预演,如何让客户领导层直观的感受到实施和开发价值,除了常规的PPT汇报以外,一个具有视觉冲击力的大屏展示,将客户高层关注的主要指标等呈现给决策用户,可以快速建立在客户心中的专业形象,促进项目的达成。
Java作为后端开发技术栈应用范围最广,这里推荐作为市面上最常见的2款Java 集成IDE,相信大家都不陌生。
Eclipse IDE
Eclipse 是一个开放源码的项目,是著名的跨平台的自由集成开发环境(IDE),最初主要用来 Java 语言开发,后来通过安装不同的插件 Eclipse 可以支持不同的计算机语言,比如 C++ 和 Python 等开发工具。
Intellij IDEA
Intellij IDEA 简称 IDEA,具有美观,高效等众多特点。IDEA 是 JetBrains 公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版本还支持 HTML,CSS,PHP,Python 等。免费版只支持 Java 等少数语言。据传它有“最智慧的 Java ide”之称。它能帮助开发人员拿出最具有创造性的解决方案。它的“Smart Code Completion”和“On-the-fly Code Analysis”功能等可以提高开发人员的工作效率,并且还提供了对 web 和移动开发高级支持。
VS Code:丰富的扩展性
VS Code 是最具扩展性的编辑器之一,而且集成能力和可扩展性是它的核心功能。在众多扩展能力中,Python 扩展、远程开发扩展以及一些智能感知驱动的扩展是目前最热门的。此外,VS Code 也有一些很酷的功能,例如通过 Prettier 进行代码格式化,通过图标和代码编辑器主题进行主题定制等。VS Code 提供的每个事项或功能特性都是完全可扩展的,同时扩展的本身也可能是增强扩展能力的过程。
JetBrains:集成生态
对于 JetBrains 来说,可扩展性并不是它需要突出的一个点,因为你会发现绝大部分你需要的功能都会随着的 IDE 版本的发布而发布。为某种语言安装一款强大的 IDE 的好处是,当我们需要某些新功能的时候可能只需要升级下 IDE 版本就拥有了,而无需去扩展市场进行寻找。
针对商业化团队,协作者质检IDE版本一致性,解决环境冲突
Intellij在企业环境中具有巨大的优势,在企业环境中,一致性,统一性和易于更换的团队成员至为重要,所以在专业化的商用环境里,标准化和效率是他大规模应用的前提。
针对新人和学习者,
VSCode是高度可定制的代码编辑器,适合不同的用例,而且更符合新手使用的学习难度,同时免费这个是一个巨大的影响力。
同时现在有了VSCode的Server版本,期待他更加完善,也在持续的学习中。
版本控制系统是用来跟踪、制作和管理软件代码变化的工具。它能够帮助开发者存储不同阶段对文件所做的每一个改动,这样我们、或者与我们协作开发的同事就可以在检索到这些改动。
首先声明,不当二极管。作为集中式和分布式的两个代表,个人认为 SVN更适用于项目管理,Git更适用于代码管理。
他们各有擅长的方向,很难下定结论哪个更好,如果你要管理大型二进制文件或者非代码资产,SVN更具有优势。如果你对离线管理,或者对于分支和合并有更复杂的要求,那么可以选择Git。
Git vs SVN
下面,就分别从服务器架构、分支管理、访问控制、存储要求、可用性等方面对比Git和SVN的差异。
Git 软件被安装在本机上,每个开发者在个人电脑上都有一个项目完整版本历史的拷贝。
Git的各种操作发生在本地,同时充当客户端和服务器,所以,开发人员不必一直处于联机状态。
SVN具有相互独立的服务器和客户端。只有开发者正在处理的文件被保存在本地机器上,而开发者必须处于联机状态,每次操作,用户检出最新文件,然后再将修改提交到服务器上。
SVN 分支是在版本库中以目录形式创建的,这种目录结构是SVN分支的核心痛点。
由于SVN是一种目录,因此,它不能反映出开发者信息,这样,就很容易造成冲突、缺失、杂乱无章等问题。
这使得分支和合并模式变得复杂,这在管理上也很费时。
Git 分支只是对某次提交的引用,它是轻量级的。
你可以在任何时候创建、删除和改变一个分支,而不会影响到提交的内容。
如果你需要测试一个新功能或发现一个错误,你可以建立一个分支,进行修改,将提交推送到中央仓库,然后删除该分支。
默认情况下,Git 假设所有的开发者都有相同的权限。
相反,SVN可以指定每个文件级别和每个目录级别的读和写权限控制,权限控制方面更加精细。
Git 仓库不能处理大型二进制文件。
SVN仓库除了可以处理代码外,还可以处理大型二进制文件。
在SVN中存储大型二进制文件会比在Git中占用更少的空间。
SVN不仅可以使用命令行,也可以作为一款客户端工具使用,不仅可以用于管理代码,还可以管理非代码类文件。
Git以命令行使用为主,而且,由于服务架构相对复杂,因此,使用方面有一定学习成本。
作为版本管理方面比较知名的两款工具,它们分别是集中式管理SVN和分布式管理Git的代表,各有擅长的方向:
面向传统软件开发
初创型公司,在开发团队规模不是很大的情况下,对多分支没有太大需求的情况下,SVN更具有优势。
面向互联网协作模式
面对开源型和跨地域的研发团队的代码管理,同时团队年龄结构年轻,学习能力较强,那么可以选择Git。
根据面对不同的场景和管理痛点,采用不同策略,现在已经出现了同时使用的融合趋势,SVN管文档,异地开发团队使用Git,每个开发的团队面对的情况和可支配的资源都是不用的,而且随着团队规模的变更和业务场景的变化,需求也是不同的,具体问题具体分析。
性能优越
当利用一个PC X服务器,精度和速度是必不可少的。Xmanager 7是高性能的X11R7.7 PC X服务器,它支持多个X扩展,从而最大限度地提高可用性。支持最多256个X的客户端连接,这意味着您可以获得几乎无限制的能力。
选项卡式界面
Xmanager 7集成了直观的选项卡界面,允许轻松的会话管理。运行多个会话并排最大化你的显示器的资源。用简单的拖放编辑视图,创建完整的工作站。
尤其是针对商业化运维,设定好检修端口后,不用频繁的登录各种云控制台,直接通过运维用户利用SSH登录后,切换到root服务器进行监控和操作,尤其是针对Java技术栈中需要图形化界面操作的,Xmanager 可以在1个界面里操作服务器,另外1个SSH连接跟踪日志,非常便捷。但是缺点就一个字:贵。
WinSCP 是一个 Windows 环境下使用的 SSH 的开源图形化 SFTP 客户端。同时支持 SCP 协议。它的主要功能是在本地与远程计算机间安全地复制文件,并且可以直接编辑文件,最核心的竞争力:免费。
MobaXterm为程序员、网站管理员、IT管理员及其它用户提供了远程操作一揽子功能,也是在本次活动中看到并学习的,上手非常简单。
MobaXterm有安装版和纯绿色免安装版,下载过来exe包直接运行即可,不需要任何的安装过程。非常方便,这点和Putty一样的干练。而且有免费版。
这里感谢CSDN,作为国内影响力最广的开发者论坛。举办了本次面向开发者的工具分享的活动,通过本次征文活动,在很多优秀的开发者的博客里,破除了对工具类的只针对已使用部分的认知壁垒,极大的开拓了工具类的认知视野,学习了到了很多先进且实用的工具以及其使用心得,同时对通识类和专业类的技术博客的创作也有了新的认识,感谢这些领域的专业创作者的分享,为我们打开了新的工具类大门,后续期待更多优秀的开发者分享自己的经验,供大家学习。
官方推荐大神的样板文章
我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=3vtuwevgbfms4