via thedesignpixel
from:http://www.oschina.net/news/52918/best-bootstrap-ui-editors
说到 WEB 设计,不得不介绍介绍 CSS 工具,CSS 工具在这里面扮演很重要的角色,可以简化无数开发者和设计师的工作,写出更好的 CSS 代码。
而网上有非常多的 CSS 工具,帮助设计师和开发者高效的工作和进行更多创新的创作,设计师和 web 开发者也把越来越多的 CSS 工具收入为自身的开发和设计利器。
在这篇文章中,我们罗列了 2014 年最好的 20 款 CSS 工具,希望能帮助大家简化自己的开发工作,创作出更多更好的创新作品。Enjoy!
EnjoyCSS 能创建活跃,超棒的实例,EnjoyCSS 生成器大大简化了自定义类声明。EnjoyCSS 是众多 CSS 工具中非常有用的,也是开发者和设计师工具箱必备的利器之一。它能加快工作流,简单易用,不需要编码就能整合丰富的图形样式到简单的 UI。
Keyframer 是非常值得信赖的,简单易用的 CSS3 动画创建工具。用户只需要点击相应的按钮就可以添加动画效果,插入相应的动画 CSS 代码。点击 X 按钮就可以删除掉当前的效果,测试动画效果。
Wow.js 允许用户滚动页面的时候展示 CSS 动画。默认的,用户可以使用它来出发 animate.css 动画。但是用户也可以非常容易修改设置喜欢的动画库。Wow.js 比其他 JavaScript 视差插件小,类似 Scrollorama(这个非常华丽,但是也更繁杂)。Wow.js 非常容易安装和使用。如果你使用 Wow.js,你可以非常快的启动,执行代码。
Jeet 是市场上最先进的网格系统,可以把它当作 Semantic.gs 的精神继承者。使用这些强大的预处理器,我们可以通过分数(浮点数)作为限制来生成基于百分比的宽度和网格槽,可以在维护无限循环槽的时候使用这个功能。 Jeet 允许用户像人类描述页面网格一样表达页面网格。使用 Jeet,不会有多余的嵌套元素,没有十二列的规则,不需要多少代码就能更快的绑定 Jeet,更灵活。
Gridlover 提供字体大小,行高和页面空白的可调节 CSS。默认 CSS 输出是针对 body,p 和 h1-h4 标题,但是用户可以通过编辑 CSS 来申请调节任意元素的可调节值。只需要简单的拖拽顶部工具栏左边和右边的数值来调节数值,Gridlover 的元素总是保持完美像素基准网格对齐。Gridlover 字体大小是通过调整标题水平的比例因子来计算的。行高会自动适应字体的大小。
Magic CSS3 Animations 是 CSS3 动画的包,伴有特殊的效果,用户可以自由的在 web 项目中使用。Magic CSS3 Animations 结构非常简单,包括 CSS 样式:magic.css 或者是 mynified 版本:magic.min.css。
Refills 中,Bourbon 提供 Sass 多态和消除特定前缀,为了更快的 CSS 编码。Neat 提供一个轻量级的网格框架,Bitters 提供 Bourbon 或者 Neat 项目的架构和基础变量。Refills 是预先包装好的模式和组件,在 Bourbon,Bitters 和 Neat 的基础上建立的。
CSS-perf 能简化一些超级不合理的 CSS 测试,使得这些测试更完美。因为一般情况下,web 页面的 CSS 测试都是围绕确定有效的方法和技术。
Progre(c)ss 能很方便的创建纯 CSS 进度条。用户只需要包括样式表,添加类到适当的元素中,再添加一个数据属性就可以轻松创建进度条。
Normalize.css 是为 HTML5 准备的,可以替代之前的进行浏览器重置。它你呢个更精确的渲染所有元素,并且统一跨浏览器,只针对规范化风格,通过检测浏览器默认设置来重置样式。
iHover 是使人印象非常深刻的悬停效果集合,是通过纯 CSS3 实现的,没有任何依赖,而且跟 Bootstrap3 结合的非常好。它随着 Scss CSS 来构建,使用变量,非常方便进行修改。iHover 会提供模块化代码,不需要包括整个文件。
Sublime CSS Completions 是 Sublime Text CSS 自动完成库,比 Sublime Text 标准的 CSS 完成功能更完整。目前只支持属性自动补齐,未来将会自动补齐有效的参数值。
Decss 几乎是 CSS 驱动的演示框架,使用 CSS3 作为转换。它提供响应式布局,内容布局 flexbox,甚至还支持演示者笔记。
Imacss 是转换图像文件成为数据 URIs 的库和应用,可以嵌入到单个 CSS 文件作为背景图片。最基础的,它能让你减少你设计(比如图标)的所有 HTTP 图片请求。
Fluidity 是极小 CSS 库,并且弥补了一部分 HTML 不是完全响应式的缺点。它修改了图片,表,格式化文本和 canvas 元素的方式,所以是完全响应式的。
Zen Grids 是响应式网格系统,根据 Sass 构建。它能大大简化布局的创建,通过移除大部分复杂的标记,使用纯 CSS 和 HTML 来创建响应式基于网格的设计。
ProgressJs 是 JavaScript 和 CSS3 库,帮助开发者创建和管理页面每个对象的进度条。用户可以设计自己的进度条模板或者自定义进度条。
BootFlat 是开源平滑 UI 工具包,基于 Bootstrap 3.1.0 CSS 框架。它提供给 web 开发者快速,简单,更少重复的方式创建优雅的 web 应用。它基于 Bootstrap 基础来创建,使用平滑设计风格。
Sculpt 是轻量级的,移动端优先的响应式 HTML,CSS 和 SASS 框架。Sculpt 是专为屏幕比较小的设备准备的,增加了许多复杂性,通过媒体查询来增加不动产。无论什么条件下提供三个大小 (732px, 960px 和 1140px) ,用户需要确定内容能适应这三个屏幕大小。
Animo.js 是一个开源的、强大的CSS动画管理工具,你可以非常方便地管理Web应用中的CSS动画,同时你也可以将它当作一个动画库来使用。
via codegeekz.com
from:http://www.oschina.net/news/52919/20-best-css-tools-for-2014
修改数据库字符集:
|
把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集:
|
只是修改表的默认字符集:
|
修改字段的字符集:
|
查看数据库编码:
|
查看表编码:
|
查看字段编码:
|
JavaScript是一门应用广泛的计算机编程语言,一般具应用在Web浏览器中,大多用于客户端脚本以实现用户与服务器的交互。在游戏开发、移动应用、一些大型的服务器应用等开发进程中它在服务器端的应用也很广泛。这是一门基于原型编程的语言,其拥有第一类函数和类库。JavaScript首次由Netscape公司引入,由java公司进一步采用,并形成目前这伟大、资源众多的Web开发平台。 目前有很多的创作工具、资源等可供在开发时使用。考虑到种类如此繁多的工具,有些工具是容易或复杂的,有些是付费的,都各自承载它们的特性。但是,编程需要的是能够完成任务并最精确的那种可能。因此,选择心仪且只包含所需的功能的资源和工具需要多多考虑。 |
今天我们为设计师和开发者收集了一些出色的JavaScript在线资源。这些资源包括JavaScript库、平台、在线工具、应用程序等许多。访问该列表并与我们分享你的想法。 1) gif.js2) togetherjsTogetherJS是一个由Mozilla开发的免费,开源的JavaScript库,它能够为你的站点添加协助特性。 3) highlightjsHighlightjs是个代码呈现器能帮助你实现语法高亮。 |
4) favico.js通过使用Favico.js,你可以让你的图标变成动画。你可以自定义动画类型,位置,背景颜色及文字颜色。 5) chartjs使用Chartjs,你能够使用更具创造性、更高效的设计布局来表现你的数据。 6) anglesjsAngles.js是一套封装chart.js库与anguler一起使用的指令集。 7) adminjs8) sir-trevor-jsSir Trevor是为web重新设想的富文本编辑方案:一个直观的web内容编辑器,关于如何渲染不需预设任何内容。 |
9) perimeter.jsPerimeter.js在目标元素周围创建一个无形的区域并监视鼠标行为。 10) roughdraft.jsRoughDraft.js是一个快速构建、全交互式的HTML原型,它没有重复标记及服务器端的循环或代码。 11) HTMLjs使用HTMLjs你可以直接使用DOM。 12) instanojsinstano.js可以让你即时检测网页加载后JavaScript是否禁用。 13) RulersGuides.jsRuleguides.js是一个JavaScript库,它能够让你在网页上使用photoshop的规则和引导界面。 |
14) skeuocardSkeuocard 逐步增强信用卡的输入以提供一个软件界面设计模仿实物纹理的接口 15) emberjsEmberjs是创建大型web应用最出名的框架。 16) leafletjsLeaflet是适用于移动友好的交互式地图的现代开源javascript库。 17) resumablejs一个通过HTML5 FILE API提供了并发的,稳定的和可恢复的上传的javascript库。 18) breezejs19) handlebarsjs20) revealjs这个工具简化了html的演示. |
from:http://www.oschina.net/translate/20-best-javascript-resources-for-web-designers-and-developers
Web领域一直在发生变化并且其边界在过去的每一天都在发生变化(甚至不能以小时为计),随着其边界的扩展取得了许多新发展。在这些进步之中,开发者的不断工作创造了更大和更好的脚本,这些脚本以插件方式带来更好的终端用户体验,它们比原来更轻量级,还有更强的处理能力。 关键是这些新发展起来的脚本和插件是能构建响应式Web的,而且还不会丧失它们原有的功能特性——除了更优秀和更轻巧(就文件大小而言)之外,它们还不会增加页面加载的时间。 通过浏览文档,掌握JQuery的语法是很容易的。它可以支持选择DOM元素,创建动画,处理事件,开发Ajax应用,甚至还为开发者提供了基于JavaScript类库之上创建插件的能力。
|
jQuery架构的开发人员能够创建一个插件代码来扩展其功能,从而能够产生一些最好的插件,让你的网站或任何给定的项目达到一个全新的水平。 在这篇文章中,我们已经积累了一些供你挑选的最佳JQuery插件,这些插件提供了各种的功能和特性能够让你的网页呈现许多可想象到的效果。我们希望你能够在下面的列表中找到你正在寻找的插件。 在下面的评论区域让我们知道哪些插件你以前使用过或者你正在考虑在将来的项目或网站中使用哪些插件。
|
from:http://www.oschina.net/translate/jquery-plugins-to-take-your-website-to-another-level
From: Andrew Preble
2. Featherweight UI – A free, vector based and retina ready UI kit
From: Sara Hunt
3. Flat UI Free – PSD&HTML User Interface Kit
From: Designmodo
From: Visualcreative.cz
5. UI Kit
From: Abhimanyu Rana
6. Polaris UI Free – User Interface Pack
From: Designmodo
7. Square UI Free – User Interface Kit
From: Designmodo
From: Sebastiaan Scheer
From: Dylan Opet
10. Flat UI
From: Andy Law
From: Raul Taciu
12. PSD Flat UI Kit Template Vol2
13. Simple UI Kit with Flat Colors
14. Free flat UI kit (.psd freebie)
From: Emanuel Serbanoiu
From: Bloom Web Design
From: Adam Robertson
From: Cüneyt ŞEN
19. Flat UI Kit
From: JAN DVOŘÁK
From: Mansoor MJ
From: Ramil Derogongun
22. Mega Flat UI Kit
From: Kim
From: Rebecca Machamer
24. Vertical Infinity – A Mega Flat Style UI Kit PSD
From: cssauthor.com
From: Devin Schulz
26. Metro UI kit
27. Flat UI Kit
From: Zachary VanDeHey
28. Beach GUI
From: Mike Clarke
From: Hüseyin Yilmaz
30. Dark UI Kit – Free download
From: Hüseyin Yilmaz
From: Shaun Stehly
32. remember.me – Application Artboards (Free PSD)
From: Amit Jakhu
From: Raul Taciu
34. Free Flat UI Kit
From: Enes Danış
35. Flat dashboard. Free UI kit PSD
From: Prowebdesignro
36. Flat Web & UI Kit Final Pack
From: Dart 117
37. UI Kit
From: Jamie Syke
38. UI/UX Flat design – Free PSD
From: Julie Champourlier
From: Riki Tanone
40. Freebie PSD: Flat UI Kit 2 (Blog)
From: Riki Tanone
From: Asim Craft
From: Sanadas Young
From: Ryan Bales
From: Tristan Parker
45. flat UI kit
From: Daniel
From: Emrah Demirag
From: PremiumPsds
From: Andreea Nicolaescu
49. Flatastic UI
From: Designerzbase
50. Flat UI Kit
From: Eric Bieller
51. Flatilicious User Interface Free
From: Patrick M.
From: Blazrobar.com
53. Flat UI Elements
From: andrewbeckwith.com
54. Free Flat UI Kit
From: Wahib El Younssi
55. Free Deal: Flat User Interface Set
From: inkydeals.com
From: Andrew Coyle
From: Federico Espinosa
58. Flat UI Kit (free download!)
From: webdesignerdepot.com and freepick.com
From: Zeki Ghulam (Flat & Filthy)
60. Orange/Cyan UI
From: Marc Konno
61. Tablet-Friendly Almost Flat UI Kit
From: Monkee-Boy.com
From: Monkee-Boy.com
63. Flat UI kit
64. Ecommerce Flat UI Kit Vol.1 (PSD)
65. Minimize UI Kit
From: Alessio Atzeni
66. Free Flat Design UI/UX Kit
From: Julie Champourlier
67. Human After All -UI Kit Free
From: Tim Meissner
68. UI/UX Flat Design Kit – Neon Theme – FREE PSD
From: Julie Champourlier
69. Flat UI Kit – Free Download
From: Mark Peck
70. Gideo UI Kit
From: Paul
71. Flat UI Kit Free
From: Giuseppe Severo
72. Free RockMedia Media UI Kit
From: Lester Gonzales
From: Fatih Ocak
74. Flat UI Kit
75. REDMILK FREE UI Elements (PSD)
From: Emile Rohlandt
76. Metrostyle Web UI Kit (PSD)
From: Josep Roselló
From: Angelo
78. UI/UX Flat Design – Sorbet Theme – Free PSD
From: Julie Champourlier
79. Flat Design Buttons for Websites
From: Asim Craft
80. UI Kit
From: Sanadas Young
81. Grooveshark PSD (Flat redesign)
From: Zeki Ghulam (Flat & Filthy)
From: Pixelkit.com
83. Free Flat Flags
From: Muharrem Şenyıl
From: Boris Valusek
85. Eerste – Flat User Interface Kit That Is Free To Download
From: Designyourway.net
87. Weekly Freebie – Reservation Box
88. Metro UI Kit
89. Metro UI KitRegister UI — Free PSD included
From: Ionut Zamfir
90. Friends list UI (Free PSD)
From: Nicolas Mata
91. Sign Up Form
From: Dylan Opet
92. Flat Web Ui
From: Josep Roselló
93. Simple UI – Free PSD included
From: Ionut Zamfir
From: Tanveer Junayed
95. Flattastic Free
From: Vlade Dimovski
From: Pele Chaengsavang
From: Patryk Adaś
From: Patryk Adaś
From: Sadat
100. Freebie PSD: Flat & Casted Long Shadow UI Kit
From: Jacopo Spina
101. RED UI
102. Leo
104. City Break UI Kit
105. Arctic Sunset GUI Kit Free PSD (Exclusive)
106. Sweet Candy UI Kit
via thedesignpixel
此咒是释迦牟尼佛说的,出自《准提陀罗尼经》。佛言:此咒能灭十恶五逆一切罪障,成就一切白法功德。持此咒者,不问在家出家、饮酒食肉、有妻子,不拣净秽,但至心持诵,能使短命众生增寿无量。迦摩罗疾尚得除差,何况余病!若不消灭,无有是处。若诵满四十九日,准提菩萨令二圣者常随其人,所有善恶心之所念,皆于耳边一一具报。若有无福、无相、求官不遂、贫苦所逼者,常诵此咒,能令现世得轮王福,所求官位必得称遂(禅宗《传灯录》中引古人云:俱胝只念三行咒,便得名超一切人是也)。若求智慧得大智慧,求男女者便得男女。凡有所求,无不称遂,似如意珠,一切随心。(若只诵“唵,折戾主戾,准提娑婆诃。”咒心亦可,准提菩萨同样感应;若时间和地点不便,或卧或坐或立或行,均可诚心念诵,出声默念均可。)
准提神咒
准提。娑婆诃。zhǔn tí suō pó hē
注释部分
注释:娑婆诃,今音司哇哈,此句意译为‘成就圆满’。
持咒功德
(十二)《大教王经》云:“七俱胝如来,三身赞说准提菩萨真言,能度一切贤圣,若人持诵,一切所求悉得成就,不久证得大菩提果,是知准提真言,密藏之中最为第一,是真言之母,神咒之王。”
本人之前很少使用单元测试,总觉得平时的工作写得代码够多了,单元测试还要再编码,增加大量工作量,相信不少程序猿也是这么认为吧。
但是我认为,在必要的时候正确运用单元测试,可以大大缩短代码的调试时间,正所谓磨刀不误砍柴工,在此建议仍不会单元测试的,还是学一下吧。当然本人在单元测试方面还是菜鸟,无论是鸡蛋鲜花都欢迎。
最近公司请微软的人做了一些关于使用VS2012进行单元测试的小培训,小生微做笔记,结合朦胧的记忆,在此自行总结,并分享之。废话少说,先上笔记:
1.先写单元测试(依我愚见,应该是接口先行,如果有的话) -> 测试失败 -> 以最小的改动(即编写实际代码)使测试通过(而在VS2012中已经不能通过现有项目直接生成测试项目了,我觉得这个功能还是应该保留,微软总是这副德行,强迫用户适应他们的产品,但是又不得不适应);
2.不因单元测试而追加功能(代码),即逻辑不受单元测试影响;
3.改变了代码的逻辑(增删改),应及时运行单元测试;
4.在测试方法声明Attribute —— TestCategory("分类或特征名");
5.在单元测试项目添加Fakes程序集分离外部依赖(如数据库访问,获取配置信息等);
6.初始化单元测试类中的成员等信息,可添加方法并声明Attribute[TestInitialize](方法需为public);
7.测试自动化。
以下我将通过自己编写代码来验证上述笔记中的部分要点。有些未涉及,以后再尝试了。
1.新建一个单元测试项目,并添加类XmlSerializationTest,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 |
[TestClass] <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span> XmlSerializationTest { [TestMethod] <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span> TestWriteXml() { UserInfo user = <span style="color: #0000ff;">new</span> UserInfo(); XmlSerialization serialization = <span style="color: #0000ff;">new</span> XmlSerialization(); <span style="color: #0000ff;">bool</span> flag = serialization.WriteXml<UserInifo>(user); Assert.IsTrue(flag); } } |
由于我这个项目是对Xml序列化进行测试,因而前提是项目中已存在了一个UserModel类,并且在单元测试项目中添加相应引用
1 2 3 4 5 |
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span> UserModel { <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span> LoginName { <span style="color: #0000ff;">get</span>; <span style="color: #0000ff;">set</span>; } <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span> Password { <span style="color: #0000ff;">get</span>; <span style="color: #0000ff;">set</span>; } } |
接下来在编写实际的代码,微软讲师建议我们先在测试项目编写,待通过单元测试后再将代码移到相应的项目下面。
现在整个解决方案结构如下图所示
保证整个解决方案生成成功之后点击菜单“测试” -〉 “运行” -〉 “所有测试”,发现测试不通过,于是就按照第一点笔记,以最小改动使测试通过。
修改WriteXml方法为:
1 2 3 4 |
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">bool</span> WriteXml<T>(T model) { <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">true</span>; } |
运行测试通过。对于返回值为bool的方法,个人建议进行至少两次Assert,也就是分别对返回true和false进行Assert,因而我们再对WriteXml方法添加一个测试方法,
1 2 3 4 5 |
[TestMethod] <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span> TestWriteXmlFalse() { Assert.IsFalse(<span style="color: #0000ff;">new</span> XmlSerialization().WriteXml<UserModel>(<span style="color: #0000ff;">null</span>)); } |
运行测试,不通过,所以我得要好好改我的代码了,在改动当中坚持执行我的第三点笔记,改动代码及时运行单元测试。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span> XmlSerialization { <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">string</span> filePath; <span style="color: #0000ff;">public</span> XmlSerialization(<span style="color: #0000ff;">string</span> filePath) { <span style="color: #0000ff;">this</span>.filePath = filePath; } <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">bool</span> WriteXml<T>(T model, <span style="color: #0000ff;">string</span> filePath = <span style="color: #0000ff;">null</span>) <span style="color: #0000ff;">where</span> T : <span style="color: #0000ff;">class</span> { <span style="color: #0000ff;">bool</span> result = <span style="color: #0000ff;">false</span>; <span style="color: #0000ff;">if</span> (model == <span style="color: #0000ff;">null</span>) { <span style="color: #0000ff;">return</span> result; } <span style="color: #0000ff;">if</span> (<span style="color: #0000ff;">string</span>.IsNullOrEmpty(filePath)) { filePath = <span style="color: #0000ff;">this</span>.filePath; } XmlSerializer serializer = <span style="color: #0000ff;">new</span> XmlSerializer(<span style="color: #0000ff;">typeof</span>(T)); <span style="color: #0000ff;">using</span> (TextWriter tr = <span style="color: #0000ff;">new</span> StreamWriter(filePath)) { serializer.Serialize(tr, model); tr.Close(); result = <span style="color: #0000ff;">true</span>; } <span style="color: #0000ff;">return</span> result; } <span style="color: #0000ff;">public</span> T ReadXml<T>(<span style="color: #0000ff;">string</span> filePath = <span style="color: #0000ff;">null</span>) <span style="color: #0000ff;">where</span> T : <span style="color: #0000ff;">class</span> { T model = <span style="color: #0000ff;">null</span>; <span style="color: #0000ff;">if</span> (<span style="color: #0000ff;">string</span>.IsNullOrEmpty(filePath)) { filePath = <span style="color: #0000ff;">this</span>.filePath; } XmlSerializer serializer = <span style="color: #0000ff;">new</span> XmlSerializer(<span style="color: #0000ff;">typeof</span>(T)); TextReader tr = <span style="color: #0000ff;">null</span>; <span style="color: #0000ff;">try</span> { tr = <span style="color: #0000ff;">new</span> StreamReader(filePath); model = (T)serializer.Deserialize(tr); } <span style="color: #0000ff;">catch</span> { } <span style="color: #0000ff;">finally</span> { <span style="color: #0000ff;">if</span> (tr != <span style="color: #0000ff;">null</span>) { tr.Close(); tr.Dispose(); } } <span style="color: #0000ff;">return</span> model; } } |
我们发现这个类的构造函数多了一个参数,是对象序列化后保存的路径,且该类对应的测试类都需要用到,因而我希望在每次测试进行单元测试前先将对象的构建,这就是第六点笔记提供的“声明Attribute[TestInitialize]”(注意必须是public方法,我用private方法运行测试是不通过)。改造后的测试类如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
[TestClass] <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span> XmlSerializationTest { <span style="color: #0000ff;">private</span> XmlSerialization serialization; [TestInitialize] <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span> InitTest() { <span style="color: #0000ff;">this</span>.serialization = <span style="color: #0000ff;">new</span> XmlSerialization(<span style="color: #800000;">@"</span><span style="color: #800000;">F:\usermodel.seri</span><span style="color: #800000;">"</span>); } [TestMethod] <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span> TestWriteXml() { UserModel user = <span style="color: #0000ff;">new</span> UserModel(); <span style="color: #0000ff;">bool</span> flag = serialization.WriteXml<UserModel>(user); Assert.IsTrue(flag); Assert.IsFalse(serialization.WriteXml<UserModel>(<span style="color: #0000ff;">null</span>)); } [TestMethod] <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span> TestReadXml() { UserModel user = <span style="color: #0000ff;">new</span> UserModel(); user.LoginName = <span style="color: #800000;">"</span><span style="color: #800000;">aa</span><span style="color: #800000;">"</span>; serialization.WriteXml<UserModel>(user); UserModel model = serialization.ReadXml<UserModel>(); Assert.IsNotNull(model); Assert.AreEqual(user.LoginName, model.LoginName); <span style="color: #008000;">//</span><span style="color: #008000;">路径不存在,应返回null</span> UserModel modelnull = serialization.ReadXml<UserModel>(<span style="color: #800000;">@"</span><span style="color: #800000;">F:\notexists.seri</span><span style="color: #800000;">"</span>); Assert.IsNull(modelnull); } } |
还可以分析测试代码的覆盖率,如下图所示在测试资源管理器点击“运行”下的相应选项。
居然是100%,真不知道这个东西微软是怎么分析出来的。
把类XmlSerializationTest移到相应的项目,更改命名空间,在测试项目添加相应引用,测试通过。
将解决方案添加到TFS源码管理,我这边是用的是微软云TFS免费版。
收工。
VS提供了很多类型的测试,负载、UI等等测试,感觉还是蛮强大的。
from:http://www.cnblogs.com/FreeDong/archive/2013/06/10/3129625.html
初出茅庐的你带着仍残留墨香的毕业证书踏上工作岗位,马上就被书上没写的规则和各种繁杂的日常事务来了个下马威。这样的故事实在是司空见惯,编程工作也不例外。
没有几个学生能 100% 为自己的第一份真正的工作做好准备。如果你不想成为其中之一,请学学以下这 10 项无需手把手指导就能学会的基本技能:
1、版本控制系统(VCS)
VCS 也许是计算机课程最大的疏漏。这些课程光记得教如何写代码,但却往往忘记教学生如何去管理代码。每一个程序员都应该懂得利用 Git 或 Subversion 有效地创建 repository(仓库),编辑与提交代码,进行分支与合并,了解项目工作流。
2、学会写作
身为程序员要写的不只有代码。你还要写项目的发布说明,给版本控制写提交消息,在系统里面写漏洞报告。这些和许多地方都需要清晰有效的文字交流—但这个技能计算机科学却很少强调。
3、正则表达式
正则表达式本身就是一门语言,每一个现代程序员都要擅长。每一门现代语言都支持正则表达式或者有相关标准库。如果代码需要校验某字符串是否含有 5 个字符、1 个破折号和 1 个数字,你应该马上就能写出 /^[A-Z]{5}-\d$/。
4、库的使用
现在已经是 2014 年,所以没人需要用正则表达式从 URL 析取主机名了。因为每一门现代编程语言都有执行常用功能的标准库。
程序员需要明白,那些经过开发、测试和调试的代码通常要比自己重新写的代码更好。更重要的是,无需编写的代码实现起来要快得多。
5、SQL
很多人的 SQL 都是在工作中学会的。数据库怎么会是选修课呢?有不用数据库的吗?
把数据存进平面文件的时代已经结束了。一切东西都要进出数据库,而 SQL 则是存取数据的语言。这是一门说明性语言,不是程序语言,所以用它来解决问题时需要新的思考方式。每一个程序员都应该了解数据库标准化基础,能够执行 SELECT(及 INNER、OUTER JOIN)、INSERT、UPDATE 和 DELETE。
6、会用IDE、编辑器及CLI工具
只懂用锯子的木匠永远也无法出师,所以计算机专业毕业的人只懂 Notepad 或 pico 令人惊诧。编程工具帮助操纵代码及其他数据,令程序员生活变得容易。所以每一个程序员都应该知道命令行、shell 脚本、find、grep 及 sed 的使用。
7、调试
每一个程序员都应该知道利用交互式调试器或在代码中点缀一些输出语句来调试程序。通过逐步求精来跟踪问题的能力实在是太重要了。
8、防错性编程
错误总是难免的,哪怕是明星程序员也不例外。失控是世界的常态,出错毫不奇怪。防错性编程正是理解了这个事实。如果东西不会不出错,我们就不会检查文件打开成功与否,不会检查客户 ID 是否合法数字,不用测试代码是否允许正确。
程序员需要知道,编译器告警是有用的工具,可让我们生活得更舒适,而不是要避而远之的麻烦事。每一个程序员都应该知道为什么每一个 PHP 程序都要这样开头:
set_error_reporting(E_ALL)
每一个 Perl 程序都要写上这些语句:
use strict; use warnings;
9、团队协作
很少编程工作会让你自己一个人完成,如果你经常这么做,智力会受损,表现会变弱。你的代码必须与别人的交互或者混合。再有才的程序员,如果无法与别人协作,都会给项目造成负面影响,并迅速成为组织的负担。
10、利用现有代码
在学校的时候,每一次作业都是一个新项目。但现实世界不是这样的。对于刚工作的人来说,所接到的第一项任务往往是修改代码漏洞。然后,再在现有代码库的基础上为现有系统增加一个小功能。设计新代码那是几个月后的事情,如果幸运的话。
[本文编译自:blog.newrelic.com]
from:http://www.oschina.net/news/52607/10-secrets-learned-software-engineering-degree-probably-didnt
响应式布局是Ethan Marcotte在2010年5月份提出的一个概念,简而言之,就是一个网站能够兼容多个终端——而不是为每个终端做一个特定的版本。这个概念是为解决移动互联网浏览而诞生的。 响应式布局可以为不同终端的用户提供更加舒适的界面和更好的用户体验,而且随着目前大屏幕移动设备的普及,用大势所趋来形容也不为过。随着越来越多的设计师采用这个技术,我们不仅看到很多的创新,还看到了一些成形的模式。 优点: 面对不同分辨率设备灵活性强 能够快捷解决多设备显示适应问题 缺点: 兼容各种设备工作量大,效率低下 代码累赘,会出现隐藏无用的元素,加载时间加长 其实这是一种折中性质的设计解决方案,多方面因素影响而达不到最佳效果 一定程度上改变了网站原有的布局结构,会出现用户混淆的情况 设计思路 我们在上面了解了什么是响应式布局,那在我们的实际项目中应该怎么去设计呢?在以往我们设计网站的时候都会受到不同浏览器的兼容性的困扰,还要来个不同尺寸设备,我们该怎么淡定下来呢?有需求就会有解决方案,说到响应式布局,就不得不提起CSS3中的Media Query(媒介查询),这可是个好东西,易用、强大、快捷……Media Query是制作响应式布局的一个利器,使用这个工具,我们可以非常方便快捷的制造出各种丰富的实用性强的界面。接下来就一起来深入的了解Media Query。 1、CSS3中的Media Query(媒介查询)是什么? 通过不同的媒介类型和条件定义样式表规则。媒介查询让CSS可以更精确作用于不同的媒介类型和同一媒介的不同条件。媒介查询的大部分媒介特性都接受min和max用于表达”大于或等于”和”小于或等于”。如:width会有min-width和max-width媒介查询可以被用在CSS中的@media和@import规则上,也可以被用在HTML和XML中。通过这个标签属性,我们可以很方便的在不同的设备下实现丰富的界面,特别是移动设备,将会运用更加的广泛。 2、media query能够获取哪些值? 设备的宽和高device-width,device-height显示屏幕/触觉设备。 渲染窗口的宽和高width,height显示屏幕/触觉设备。 设备的手持方向,横向还是竖向orientation(portrait|lanscape)和打印机等。 画面比例aspect-ratio点阵打印机等。 设备比例device-aspect-ratio-点阵打印机等。 对象颜色或颜色列表color,color-index显示屏幕。 设备的分辨率resolution。 3、语法结构及用法 @media 设备名 only (选取条件) not (选取条件) and(设备选取条件),设备二{sRules} 示例一:在link中使用@media: <link rel=“stylesheet” type=“text/css” media=“only screen and (max-width: 480px),only screen and (max-device-width: 480px)” href=“link.css”/> 上面使用中only可省略,限定于计算机显示器,第一个条件max-width是指渲染界面最大宽度,第二个条件max-device-width是指设备最大宽度。 示例二:在样式表中内嵌@media: @media (min-device-width:1024px) and (max-width:989px),screen and (max-device-width:480px),(max-device-width:480px) and (orientation:landscape),(min-device-width:480px) and (max-device-width:1024px) and (orientation:portrait) {srules} 在示例二中,设置了电脑显示器分辨率(宽度)大于或等于1024px(并且最大可见宽度为989px);屏宽在480px及其以下手持设备;屏宽在480px以及横向(即480尺寸平行于地面)放置的手持设备;屏宽大于或等于480px小于1024px以及垂直放置设备的css样式。 从上面的例子可以看出,字符间以空格相连,选取条件包含在小括号内,srules为兼容设置的样式表,包含在中括号里面。only(限定某种设备,可省略),and(逻辑与),not(排除某种设备)为逻辑关键字,多种设备用逗号分隔,这一点继承了css基本语法。 4、可用设备名参数: 5、逻辑关键字: 6、可用设备名参数: 7、测试Media Queries 最后,我们需要对我们刚刚设计的Media Queries进行测试,想要在不同设备上测试Media Queries的效果,可以使用一个浏览工具来检验不同尺寸屏幕下的显示效果,在这里为大家介绍一个不错的在线工具 – Responsivator,它可以模拟iPhone等各种不同设备,并且还可以自定义不同尺寸屏幕的显示效果,只需要输入一个url甚至是本地的一个url(如:http://127.0.0.1/),就可以看到网站在不同尺寸屏幕下的显示效果。 8、通过Media Queries实现响应式布局设计 好了,我们明白了什么是Media Query,那我们一起来运用到响应式布局的设计项目中去。设计思路很简单,首先先定义在标准浏览器下的固定宽度(假如标准浏览器的分辨率为1024px,那么我们设置宽为980px),然后用Media Query来监测浏览器的尺寸变化,当浏览器的分辨率小于1024px的时候,则通过Media Query预设的样式表来将页面的宽度设置为百分比显示,这样子页面的结构元素就会根据浏览器的的尺寸来进行相对应的调整。同理,当浏览器的可视区域改变到某个值(假如为650px)的时候,页面的结构元素根据Media Query预设的层叠样式表来进行相对应的调整。看看我们的例子: /* 当浏览器的可视区域小于980px */ […]
View Details