- 浏览: 72815 次
- 性别:
- 来自: 西安
最近访客 更多访客>>
最新评论
-
tangyz213:
写的很好啊。。。我也有两次失败的创业经历。。。
感同身受啊。。 ...
从程序员到第四次创业的生活(一) -
natuever:
liu472 写道我想你一定很成功吧。我现在是一个不折不扣的菜 ...
程序员不是码农 -
liu472:
我想你一定很成功吧。我现在是一个不折不扣的菜鸟,希望自己能够尽 ...
程序员不是码农 -
java-平凡之主:
我今年22,刚从大学出来,学的是软件开发,现在是在软件公司上班 ...
程序员不是码农 -
zhangzhenting:
onecan 写道看到这个帖子,也想给那些工作了几年的程序员说 ...
程序员不是码农
做了两年UI开发了。和不同的人配合。使用不同的后台编码..NET,J2EE,PHP,ASP.
随着人们对WEB应用的要求提高。我们的软件和网站在前端的用户体验和人机交互方面在做不断的尝试和提高。
但是在实际的开发中。很多公司还是陷入了一个困境。注意。这里只是说部分公司。大部分公司吧.因为没有专人去负责UI开发和交互设计与开发。而是由美工与程序共同完成。
困境一: 美工设计-->后台编码实现.
美工负责设计。并且做成静态页面模型<有些美工会实现部分JS>.发给后台开发小组/人员.
后台开发人员负责VIEW层的最终实现。<并且会实现部分JS.>
问题:
后台开发人员接收到的静态页面模型不标准.嵌套程序有困难.或者嵌套程序后会出现页面布局混乱等问题。
大部分美工很多情况下都只是设计人员.并且大多情况下只会用效果图去做第一次审核和最后一次审核。而这样又会出现新的问题。动态的效果无法用一张图片很详细的说明。很多效果或许自己不知道该如何实现或者有些困难会舍去.虽然网上有很多开源的代码。JS,FLEX,FLASH. 但多数情况下这些UI都是以代码为主.以前端为主.对于大部分美工来说。读代码是件痛苦的事.或者根本读不懂.
对大部分程序来说。很多高级的UI应用都是基于JAVASCRIPT+XML|JSON|XSLT|TXT|HTML+CSS+DOM/FLEX/FLASH.这样的应用或许很容易上手。但也很容易由于2次开发造成很多BUG.还有一种情况。对于数据传输来说。后台与前端的数据交互。采用什么格式.什么标准?
至此.已经早成了前后台开发人员协调脱节的现象。
困境二:美工设计-->UI开发人员实现-->后台编码人员与UI开发人员一起整合
这样的开发团队似乎理想一点。每个人分工清楚。但协调脱节的现象仍然存在。
在开发阶段。顺利的话可以正常发布.上线.
但是这样子做.假设数据传输格式为:JSON|XML|XSLT. 发送请求为AJAX.或者伪AJAX(IFRAME).如果出现了BUG.调试将是件痛苦的事.尤其是中型以上的项目。大量采用了JS开发前端的项目。分析BUG只能是两组人一起上。效率很底.
为了更好的开发.更好的应用。我们身边或许很多公司已经有人开始使用JQUERY,PROTOTYPE,EXT,DOJO,YUI,GWT.并且也做出了很多很出色的CASE.我也参与了好几个项目的UI开发。说真的。对我来说最痛苦的莫过于与后台人员沟通如何实现数据交互了。要不就是程序不知道JSON.你给了他们模板数据也会出错。要不就是输出XML后在用JS解析.或者动态捆绑XSLT解析.开发效率底.要不还有一种情况就是程序告诉我这个必须采用服务器端控件:比如.NET.真疯了。
最近一直在想一种新的开发模式。方便自己也方便程序员.简单的先说下了。过段时间有机会在提交详细的说明.
基于HTML+CSS的UI开发与实现.
一:分析
1.WEB应用里最常见的。增、删、改、查
增加:FORM<控件、数据校验>,数据提交<post,get|ajax、伪ajax>。布局<div|table>。
删除:数据提交 <post,get|ajax、伪ajax>
修改:数据回填、FORM、数据提交、布局
查询:查询的表单、查询的结果、分页、对单条数据的一些附加操作:比如删除、修改的接口调用。基于超级连接的或者AJAX
2.特殊的UI效果
拖动、MENU、TABS、TREE、等等。。。。
3.其他应用调用接口。
二:设计思路
上边我们提到了常用的一些操作和功能。
按照这些功能。我们对UI可以进行分组定义。定义出一组基于HTML的模板。
比如一个有一个查询功能。我们可以这样划分
1。查询表单。<form页面。就一个单页面存放查询的FORM>
2。显示结果的GRID。<列表页面,用TABLE就行。>
3。分页控件。<分页控件页面>
4。单选或者复选。<包含在GRID里。用CLASS标记>
5。其他操作的接口。比如单条数据的查看详细信息。删除。修改等。<特殊操作的接口页面,或者是包含在grid里针对某一条信息的操作接口>
用一个页面对这些操作进行include和布局.可以用动态页面中的include.也可以用JS提供一组AJAX方式的include方法<ajax请求某一个页面返回HTML代码加载>。
三:特殊处理
用一组CSS来定义组件的显示方式。比如现在我们定义了3个UI。
CLASS:menu grid tab
用一组JS来读取UI的CLASS。并且添加事件和特殊操作等。比如AJAX事件。
menu.js grid.js tab.js
用一组JS来配置这个应用的操作接口。上边的JS会用到。
这里我们是在做查询应用。比如这样定义
SearchConfig.js
SearchConfig = {
delete : 'xx/xxx/xxx.jsp',
add : 'xx/xxx/xxx.jsp',
update : 'xx/xxx/xxx.jsp',
get : 'xx/xxx/xxx.jsp',
search : 'xx/xxx/xxx.jsp'
}
四:后台开发
在这里。我只需要按照后台人员的需求在我已经做好的UI中挑选静态页面发给后台开发人员。他们只需要关心输出HTML或者接受请求处理。返回一个标记。
五:总结
在这个过程中,后台开发人员不需要关心什么是JSON。怎么用XML,怎么用XSLT。美工也不用去关心怎么去实现JS。怎么去实现AJAX。美工只需要按照程序的要求在UI的库中按照要求组装。最多做一个布局。修改部分UI的风格就可以。
呵呵。还没说我到底要做什么。
做一组用HTML+CSS定义好的静态UI。用JS动态的读取这些UI,并且根据CONFIG文件自动配置UI。最大限度的减轻美工和后台开发人员对JS开发的痛苦。
由于表达能力有限,说的不好。尽请朋友口下留情。
有兴趣的朋友可以看下:http://www.hooyi-semi.com/semi/index.html
其中的grid和tabs,menu.都是按照这样的思想去做的。
构建一套基本的css和js,能完成需求期间UI就ok了,至于最终的形式,基本就是仁者见仁智者见智了,呵呵
是啊。做一套最基本的。在做一套高级的ui用的html.css.js.剩下的完全由用户自己选择。
如果你的框架能提供这样的功能,让程序员更多的关注后台代码,那真是完美了
我只能说。我努力吧.呵呵。
曾经的公司里别说UI开发,就是美工都是自己弄,往往1/4的时间在写后台代码,3/4时间在弄自己很头疼的页面。
我现在的情况跟你一样呀,natuever的文章虽然给了一些方法,但公司的人力不能满足这种模式呀
曾经的公司里别说UI开发,就是美工都是自己弄,往往1/4的时间在写后台代码,3/4时间在弄自己很头疼的页面。
不知道我这样的想法和做法是否对你以前那样的公司有所帮助。
随着人们对WEB应用的要求提高。我们的软件和网站在前端的用户体验和人机交互方面在做不断的尝试和提高。
但是在实际的开发中。很多公司还是陷入了一个困境。注意。这里只是说部分公司。大部分公司吧.因为没有专人去负责UI开发和交互设计与开发。而是由美工与程序共同完成。
困境一: 美工设计-->后台编码实现.
美工负责设计。并且做成静态页面模型<有些美工会实现部分JS>.发给后台开发小组/人员.
后台开发人员负责VIEW层的最终实现。<并且会实现部分JS.>
问题:
后台开发人员接收到的静态页面模型不标准.嵌套程序有困难.或者嵌套程序后会出现页面布局混乱等问题。
大部分美工很多情况下都只是设计人员.并且大多情况下只会用效果图去做第一次审核和最后一次审核。而这样又会出现新的问题。动态的效果无法用一张图片很详细的说明。很多效果或许自己不知道该如何实现或者有些困难会舍去.虽然网上有很多开源的代码。JS,FLEX,FLASH. 但多数情况下这些UI都是以代码为主.以前端为主.对于大部分美工来说。读代码是件痛苦的事.或者根本读不懂.
对大部分程序来说。很多高级的UI应用都是基于JAVASCRIPT+XML|JSON|XSLT|TXT|HTML+CSS+DOM/FLEX/FLASH.这样的应用或许很容易上手。但也很容易由于2次开发造成很多BUG.还有一种情况。对于数据传输来说。后台与前端的数据交互。采用什么格式.什么标准?
至此.已经早成了前后台开发人员协调脱节的现象。
困境二:美工设计-->UI开发人员实现-->后台编码人员与UI开发人员一起整合
这样的开发团队似乎理想一点。每个人分工清楚。但协调脱节的现象仍然存在。
在开发阶段。顺利的话可以正常发布.上线.
但是这样子做.假设数据传输格式为:JSON|XML|XSLT. 发送请求为AJAX.或者伪AJAX(IFRAME).如果出现了BUG.调试将是件痛苦的事.尤其是中型以上的项目。大量采用了JS开发前端的项目。分析BUG只能是两组人一起上。效率很底.
为了更好的开发.更好的应用。我们身边或许很多公司已经有人开始使用JQUERY,PROTOTYPE,EXT,DOJO,YUI,GWT.并且也做出了很多很出色的CASE.我也参与了好几个项目的UI开发。说真的。对我来说最痛苦的莫过于与后台人员沟通如何实现数据交互了。要不就是程序不知道JSON.你给了他们模板数据也会出错。要不就是输出XML后在用JS解析.或者动态捆绑XSLT解析.开发效率底.要不还有一种情况就是程序告诉我这个必须采用服务器端控件:比如.NET.真疯了。
最近一直在想一种新的开发模式。方便自己也方便程序员.简单的先说下了。过段时间有机会在提交详细的说明.
基于HTML+CSS的UI开发与实现.
一:分析
1.WEB应用里最常见的。增、删、改、查
增加:FORM<控件、数据校验>,数据提交<post,get|ajax、伪ajax>。布局<div|table>。
删除:数据提交 <post,get|ajax、伪ajax>
修改:数据回填、FORM、数据提交、布局
查询:查询的表单、查询的结果、分页、对单条数据的一些附加操作:比如删除、修改的接口调用。基于超级连接的或者AJAX
2.特殊的UI效果
拖动、MENU、TABS、TREE、等等。。。。
3.其他应用调用接口。
二:设计思路
上边我们提到了常用的一些操作和功能。
按照这些功能。我们对UI可以进行分组定义。定义出一组基于HTML的模板。
比如一个有一个查询功能。我们可以这样划分
1。查询表单。<form页面。就一个单页面存放查询的FORM>
2。显示结果的GRID。<列表页面,用TABLE就行。>
3。分页控件。<分页控件页面>
4。单选或者复选。<包含在GRID里。用CLASS标记>
5。其他操作的接口。比如单条数据的查看详细信息。删除。修改等。<特殊操作的接口页面,或者是包含在grid里针对某一条信息的操作接口>
用一个页面对这些操作进行include和布局.可以用动态页面中的include.也可以用JS提供一组AJAX方式的include方法<ajax请求某一个页面返回HTML代码加载>。
三:特殊处理
用一组CSS来定义组件的显示方式。比如现在我们定义了3个UI。
CLASS:menu grid tab
用一组JS来读取UI的CLASS。并且添加事件和特殊操作等。比如AJAX事件。
menu.js grid.js tab.js
用一组JS来配置这个应用的操作接口。上边的JS会用到。
这里我们是在做查询应用。比如这样定义
SearchConfig.js
SearchConfig = {
delete : 'xx/xxx/xxx.jsp',
add : 'xx/xxx/xxx.jsp',
update : 'xx/xxx/xxx.jsp',
get : 'xx/xxx/xxx.jsp',
search : 'xx/xxx/xxx.jsp'
}
四:后台开发
在这里。我只需要按照后台人员的需求在我已经做好的UI中挑选静态页面发给后台开发人员。他们只需要关心输出HTML或者接受请求处理。返回一个标记。
五:总结
在这个过程中,后台开发人员不需要关心什么是JSON。怎么用XML,怎么用XSLT。美工也不用去关心怎么去实现JS。怎么去实现AJAX。美工只需要按照程序的要求在UI的库中按照要求组装。最多做一个布局。修改部分UI的风格就可以。
呵呵。还没说我到底要做什么。
做一组用HTML+CSS定义好的静态UI。用JS动态的读取这些UI,并且根据CONFIG文件自动配置UI。最大限度的减轻美工和后台开发人员对JS开发的痛苦。
由于表达能力有限,说的不好。尽请朋友口下留情。
有兴趣的朋友可以看下:http://www.hooyi-semi.com/semi/index.html
其中的grid和tabs,menu.都是按照这样的思想去做的。
评论
12 楼
natuever
2008-11-28
ayaya 写道
构建一套基本的css和js,能完成需求期间UI就ok了,至于最终的形式,基本就是仁者见仁智者见智了,呵呵
是啊。做一套最基本的。在做一套高级的ui用的html.css.js.剩下的完全由用户自己选择。
11 楼
ayaya
2008-11-28
构建一套基本的css和js,能完成需求期间UI就ok了,至于最终的形式,基本就是仁者见仁智者见智了,呵呵
10 楼
zenggang2008
2008-11-28
往往一个webapp最花时间的就是在UI上
不过现在的解决方案也有很多了
真的希望flex能火起来,毕竟写html.css.....太累了
不过现在的解决方案也有很多了
真的希望flex能火起来,毕竟写html.css.....太累了
9 楼
natuever
2008-11-28
flyfan 写道
如果你的框架能提供这样的功能,让程序员更多的关注后台代码,那真是完美了
我只能说。我努力吧.呵呵。
8 楼
flyfan
2008-11-27
如果你的框架能提供这样的功能,让程序员更多的关注后台代码,那真是完美了
7 楼
ynw520
2008-11-27
写代码不难,封页面真的花时间.
6 楼
whaosoft
2008-11-27
呃 你辛苦了 我为所有的前端程序员致敬~
不要怪我们把页面都跑给你们
不要怪我们把页面都跑给你们
5 楼
jiyu
2008-11-27
写webapp跟写nativeapp越来越像了,webapp也逐渐能胜任很多nativeapp的工作。但是,写native app很简单,了解一个框架,掳起袖子就可以写,刷刷两下,一个程序就出来了,但是些一个webapp,要了解很多东西,HTML/CSS/JS/...,数不胜数,如果,能有一个框架,把程序员从烦恼的页面设计中解脱出来,那就十分帅了,大家都集中精力在程序功能上,一个真正的web framework,用起来都如同native framework一样的东东。
曾经以为YUI算得上一个framework了,后来发现使用起来仍然很困难,作罢。
如果博主有兴趣发布这样一个框架,那可真是不错,写代码的就安心写代码去吧,设计页面的就安心设计页面去吧。
曾经以为YUI算得上一个framework了,后来发现使用起来仍然很困难,作罢。
如果博主有兴趣发布这样一个框架,那可真是不错,写代码的就安心写代码去吧,设计页面的就安心设计页面去吧。
4 楼
natuever
2008-11-27
了
liangwenzheng 写道
曾经的公司里别说UI开发,就是美工都是自己弄,往往1/4的时间在写后台代码,3/4时间在弄自己很头疼的页面。 我现在的情况跟你一样呀,natuever的文章虽然给了一些方法,但公司的人力不能满足这种模式呀
如果我们可以提供一组这样的框架.不知是否可以被大家接受和采用
flyfan 写道
liangwenzheng 写道
曾经的公司里别说UI开发,就是美工都是自己弄,往往1/4的时间在写后台代码,3/4时间在弄自己很头疼的页面。 我现在的情况跟你一样呀,natuever的文章虽然给了一些方法,但公司的人力不能满足这种模式呀
如果我们可以提供一组这样的框架.不知是否可以被大家接受和采用
3 楼
flyfan
2008-11-27
liangwenzheng 写道
曾经的公司里别说UI开发,就是美工都是自己弄,往往1/4的时间在写后台代码,3/4时间在弄自己很头疼的页面。
我现在的情况跟你一样呀,natuever的文章虽然给了一些方法,但公司的人力不能满足这种模式呀
2 楼
natuever
2008-11-26
liangwenzheng 写道
曾经的公司里别说UI开发,就是美工都是自己弄,往往1/4的时间在写后台代码,3/4时间在弄自己很头疼的页面。
不知道我这样的想法和做法是否对你以前那样的公司有所帮助。
1 楼
liangwenzheng
2008-11-26
曾经的公司里别说UI开发,就是美工都是自己弄,往往1/4的时间在写后台代码,3/4时间在弄自己很头疼的页面。
发表评论
-
从程序员到第四次创业的生活(二)
2013-06-20 01:50 1085转眼间,我们已经创业两年了。。。 第一年:市场调研,选定我们的 ... -
程序员不是码农
2012-03-02 01:46 6920创业的路其实很难 ... -
程序员不是码农
2012-03-02 01:43 0创业的路其实很难 ... -
从程序员到第四次创业的生活(一)
2012-02-29 01:28 4113第四次创业了,又一个 ... -
2011随笔
2011-06-21 03:08 937过完春节到现在,很少像这两天,可以过个周末,可以晚上在家 ... -
2009年总结报告
2010-01-05 23:56 1505时间过的真快啊,转眼间2009年就过去了。今年是我这几 ... -
2009的倒数第二个月
2009-11-20 23:31 8042009年的倒数第二个月。 今天晚上陪一个客 ... -
最近的业绩
2009-11-15 19:27 1099做了一个月的业务,总算有点业绩。 同时与几家 ... -
什么是朋友
2009-11-09 13:53 878什么是朋友?呵呵。逐渐的我心中越来越有了清晰的认识。 ... -
人要靠自己!
2009-11-04 16:46 997不要想着依靠任何人,包括父母。人还是靠自己踏实一些。谁 ... -
我的近况
2009-11-02 19:19 748不停的写方案,不停的修改,不停的与客户和老板沟通交流, ... -
专做业务的一点感受
2009-10-20 15:59 1102传说阿里巴巴的业务员都是很变态很无敌的(我不是阿里的。 ... -
2009年半年回顾
2009-07-22 22:58 1107整整半年了,对这半年我用了半个月的时间做了一次回顾,部 ... -
变味的项目
2009-05-06 03:55 899项目中的沟通问题一直存在,又出现了前后台交互的沟通上。 ... -
联起手拒绝加班
2009-04-09 23:47 1188每年都有IT从业人员猝死的案例. IT从业人员 ... -
让技术成为成功的杠杆
2009-04-07 03:16 814让技术成为成功的杠杆,让每一同我一样在为技术做民工的工 ... -
设计风格
2009-03-12 22:58 8621.以人为本 —他们的生活、他们的工作和他们的梦想 产品管理与 ... -
震中设计
2009-03-08 17:13 769震中设计 始于页面的核心然后向外延展 震中设计就是关注于页面的 ... -
更小的质量
2009-03-08 11:36 732更小的质量 你越做到精益,改变越容易 一个物体的质量越大,改变 ... -
迟到的 2009 todolist
2009-03-08 01:19 976这份迟到了三个月 ...
相关推荐
HTML+CSS+JavaScript+jQuery+Bootstrap等前端框架实现的前端案例.zip
媒体查询 CSS媒体查询允许开发者基于浏览网站的设备的特性来应用不同的样式申明,最常用的特性是视口宽度。 GCF 谷歌内嵌浏览器框架, 使用此插件,用户可以通过Internet Explorer的用户界面,以Chrome内核的渲染方式...
layui(谐音:类UI) 是一款采用自身模块规范编写的前端 UI 框架,遵循原生 HTML/CSS/JS 的书写与组织形式,门槛极低,拿来即用。其外在极简,却又不失饱满的内在,体积轻盈,组件丰盈,从核心代码到 API 的每一处...
其次,我们采用了前端开发的最新技术和工具,如HTML5、CSS3和JavaScript。我们使用了响应式设计来确保我们的应用程序在不同设备上都能提供最佳的用户体验。我们还使用了一些流行的前端框架和库,如Bootstrap和jQuery...
其模板基于双向UI数据绑定。数据绑定是一种自动方法,在模型改变时更新视图,以及在视图改变时更新模型。其HTML模板在浏览器中编译。编译步骤创建纯HTML,浏览器将其重新渲染到实时视图。该步骤会在随后的页面浏览中...
使用microsoft.web.ui.webcontrols的TabStrip与IFame组件,达到页的切换效果 HttpModule 实现 ASP.Net (*.aspx) 中文简繁体的自动转换,不用修改原有的任何代码,直接部署即可! 服务器自定义开发二之客户端脚本回发 Web...
嵌入 Chromium 和 Node.js 到 二进制的 Electron 允许您保持一个 JavaScript 代码代码库并创建 在Windows上运行的跨平台应用 macOS和Linux——不需要本地开发 经验。 某某说:我们的应用要兼容多个平台,原生开发...
本书全面探讨了 iphone平台的两种编程方式 ——web开发和 sdk编程。全书结合示例对这两种编程方式的基本流程、基本原理和基本原则给出了详细而通俗的讲解。在 web开发方面,分别介绍了三个 iphone web库,即 ...
BootstrapCSS48 22构建系统48 构建系统准则49 自动化所有事情49 尽早报错,清晰报错49 不同的工作流,不同的命令50 构建脚本同样是代码50 工具50 Gruntjs51 测试库与工具51 Jasmine51 Karmarunner52 23...
而且React Native已经用于生产环境——Facebook Groups iOS应用就是基于它开发的。 React Native的原理是在JavaScript中用React抽象操作系统原生的UI组件,代替DOM元素来渲染,比如以取代,以替代等。 在幕后,React...
内容全面、丰富、翔实,不仅由浅入深地讲解了jQuery的所有必备基础知识,还介绍了jQuery UI等扩展知识以及jQuery开发中的技巧与性能优化方面的高级知识。 本书极其注重实战,因为动手实践才是掌握一门新技术的最...
Jquery是继prototype之后又一个优秀的Javascrīpt框架。...当然,也可以用来开发插件,但Resig强烈建议在开发插件之前,先考虑jQuery UI widget工厂。 值得注意的是,sub函数并不提供真正的隔离,所有方法、数据、...
前端开发面试题大吸收,前端面试锦 :red_heart: :heart_with_ribbon: :heart_with_arrow: - 复制 GitHub Markdown 样式的最少 CSS - 为您的网站和项目提供新功能介绍和分步用户指南的更好方法。 - Web 组件规范 - ...
Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。 部分源代码摘录: ftpClient = new FtpClient(); //实例化FtpClient对象 String serverAddr=jtfServer.getText(); //得到服务器地址 ...
百度云盘分享 ... Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。 部分源代码摘录: ftpClient = new FtpClient(); //实例化FtpClient对象 String serverAddr=jtfServer.getText();...
3.5.2 UI组件和UI组件套件 3.5.3 应用框架 3.6 小结 3.7 资源 第二部分 核心技术 第4章 作为应用的页面 4.1一种不同类型的MVC 4.1.1 以不同的规模重复MVC模式 4.1.2 在浏览器端应用MVC 4.2 Ajax应用中的视图 4.2.1 ...