java怎么打开黑框_为什么我学的JAVA,c语言只有黑框框,要怎么样才能做出一个软件的样子呢;(万分感谢大家解惑)?...

学习语言的本质

软件项目,都有个核心的东西,叫做算法。而算法只要控制台,足够测试使用了。而语言的学习过程中,主要是在解决什么问题?简单而言,实际上,学习编程语言的本质,是在学习它的语法,直观的说,它是一个学习、熟悉、掌握、使用工具的过程。那么既然是为了学语法,就应当从最简单的开始,而控制台则是最基础的方案。这就好比一个新手,本就应该从最简单的开始入手,由浅入深。或者可以理解为,编程语言的语法规则相当于是构建软件项目的第一道门槛,那么这个门槛应该尽可能低,便于入门。

其次,学习编程语言的本质是,在于建立一种编程思想,并且应用这种思想,学会将现实中客观的问题,建模、抽象成为程序和代码。这个过程是很关键,很重要的,学会某一种编程语言的标志在于,你会用编程语言解决你所遇到的问题和场景,并以解决方案的形式体现。所以都说,编程语言都是互通的,学会一种,学其他的很简单,我认为这里的学会指的就是,学会这种思想。那么,以确立编程思想为目标,是不需要各种华丽的东西来粉饰的,思想不需要从UI这些东西所能反馈或建立起来,那么也自然不需要用UI来干扰这个学习的过程。

最后,学习UI是另外一个领域,其是软件项目的某个过程,但作为初学者,应当以基础为起始,再逐步向UI扩展,这就好比是盖房子,第一步应当是学会如何搭建房子的结构,再来考虑装修的问题,软件工程其实也是工程,那么其和建筑工程,在某些方面有共同点,迁移思考下,就知道为什么要学习控制台了。

不要小看控制台

有个很重要的点在于:入门者不要将控制台不视为软件。

其实,在现阶段都采用面向对象程序设计来开发大型项目的现状而言,很多时候都需要关注:封装、继承、多态。其他特性暂时不考虑,想必封装是很多程序员们都需要掌握的程序设计思想。

在大型项目的开发过程中,是需要协作的,如何协作?

这里涉及到所谓的项目管理,不做过分延伸,但是可以简单地理解,一个大型项目需要多个人合作分工完成,一人负责某一些小模块。简单的举例,要开发一个项目,要做数据库,要对数据库业务进行处理。那么分两个人完成,一个人负责DB的CRUD,另一个人负责Business,那么两个人如何协作?

很简单,设计好通信规范,各自开发即可。那么,各自开发完后,如何集成?很简单,各自把各自的负责部分封装好,然后在集成的时候,把封装的东西,相互调用即可。比如C++开发Windows,会产生很多.lib,.h,java得到很多.jar等等。那么集成的时候,包与包,或者说模块相互调用就行。

那么在上述的过程中,需要你进行好看的界面开发吗?暂时不需要。要知道,这些业务才是一个软件系统的核心,没有逻辑,没有数据,你做出了UI也没用。所以,对于程序员,第一步应该先实现逻辑。

那么如何确定每个人写的逻辑正确呢?那么便要单元测试,这就类似于写了很多个main,对你写的每个方法覆盖性UC测试,那么这时候也是不需要界面的,实际上,只需要控制台,预期与实际结果相符,就可以了。

当然,在实际项目开发中,UI和逻辑是可以并行开发的,因为现在才用的模式都是前后端分离,或者说分层开发,MVC设计模式等等,前端专注前端,也就是说UI专注UI,逻辑专注逻辑。

但是,UI也有UI的交互逻辑,倘若不能学会用语言处理逻辑问题,那么UI的交互逻辑如何能实现?所以,逻辑是一切的根本,那么学会逻辑,就是前面讲的内容了,不需要界面的东西,反而会干扰程序设计思想的建立过程。

回到这部分的第一句话,控制台程序就不属于软件了吗?

答案是,否。想想Linux的很多包,他们都说通过命令行事来完成的,他们是软件吗?是!在Linux里面,可以理解为,所有的可视化软件,都是在控制台程序上面套了一层GNome之类的壳儿。甚至于Linux发行版的桌面,可见的操作,本质上,都是在内核上套了一层外壳,而真正执行的还是没有节面的东西,而界面,只是对输出的数据进行了全新的布局,或者说,以一种更加直观的方式展现了出来。比如说,速度的变化,本质上是数值的变化,但是控制台打印,可能只能按照一定频率打印,而有了界面,就可以做成图表。试想一下,如果有了一段时间的速度变化数据,是不是我可以用曲线绘制,也可以用条形图来显示?显示方式可以不同,但是本质上,是数据,所以如何得到数据才是关键,如何美化数据展示,这是后面需要考虑的问题。

再来回顾下网站的发展,万维网早起,网站好看吗?不好看,就是简单的陈列文字,图片而已,但是现在,五花八门的效果。如此的一个发展过程,就类似于学习编程的一种过程,首先要学会怎么用,再来考虑好不好看。

学习UI

若基础已经很扎实了,做全栈的工程师们,会考虑将自己的软件提供可视化界面,供给更多人使用。

对于题主,如果想用UI展示自己的软件,针对不同的语言,可以有不同的选择,但是现在常用的方法都是基于框架,也就是基于一些壳儿。

比如Java有Swing/JFX,C++有QT/QML,C#有.net/WPF,现在还流行用Electron。又甚至于做Web,用前端CSS框架,bootstrap等,前端开发框架,React等。

UI的选择很多,但是前提是你的逻辑已经开发好,那么可以选择很多种方法对其包装。

总结

针对题主的需求,我的建议是,先巩固基础,学会解决问题,也就是能够写出业务逻辑。

比如,要开发个简单的“日程管理软件”,分析清楚其中的业务流程,编写好完整的业务逻辑,比如控制台给定日期、标题、详情可以完成添加一个日程的功能。

之后,再来考虑如何可视化。如果业务代码都测试通过了,可以开始对其套外壳,针对不同的平台,不同的语言选择合适的框架壳子,让自己的软件看起来简单易用,毕竟控制台等各类参数操作是程序员熟悉的操作。而套壳的目的就在于,将原本手动输入的控制台参数,使用可视化的界面提供给用户交互使其简单易用,而待交互完成后,外壳会收集好这些交互结果对应的具体参数,并采用类似控制台命令的方式,获取结果,外壳收到结果后,再根据具体的交互逻辑对结果进行可视化。

比如题主开发了一个软件,想要到windows上发布,那么考虑选择.net提供的可视化框架,设计好界面,再将包装好的业务逻辑组建对接起来即可。或者考虑跨平台,业务逻辑都用Java开发,那么再选择JAVA FX开发个界面,打包发布即可。

要华丽选择好框架就够了,或者自己开发框架。但是开发框架,使用框架,都必须保证,会实现逻辑,否则再好看都是华而不实,所以控制台是教你学会逻辑的第一步。

这也是美工和UI的区别,美工能设计很好看的图,但是之后交互能把图实现成能交互的网页或者前端窗口,因为UI懂得如何实现交互逻辑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值