当前位置: 首页 > news >正文

南漳网站定制怎么建设一个开源平台网站

南漳网站定制,怎么建设一个开源平台网站,个人营业执照网上注册,爱站工具有加超人下拉系统我与一位同事讨论了Java与JavaScript的话题#xff0c;这是一个有问题的话题。 然后#xff0c;他提到React Native多么出色#xff0c;我决定我必须研究一下#xff0c;也许要为Codename One掌握一些想法…… 那里有一些不错的主意#xff0c;但是它们都不是革命性的或例… 我与一位同事讨论了Java与JavaScript的话题这是一个有问题的话题。 然后他提到React Native多么出色我决定我必须研究一下也许要为Codename One掌握一些想法…… 那里有一些不错的主意但是它们都不是革命性的或例外的而且对于在Java 8中运行的Codename One开发人员来说大多数都不是什么新鲜事。 我喜欢的一件事是React演示代码看起来有多短所以我将其移植到Codename One上最终得到了大致相同数量的代码并且可以说是更好/更简单的代码 退房的完整列表在文章的结尾或在github上的项目在这里 但让我们首先回顾了为什么Java代码是“更好”。 同步执行 JavaScript爱好者讨厌这一点但它仍然是一个事实即同步代码更易于阅读跟踪和调试。 例如这是获取数据的代码的React Native版本 fetchData: function() {fetch(REQUEST_URL) .then((response) response.json()) .then((responseData) { this.setState({ dataSource: this.state.dataSource.cloneWithRows(responseData.movies), loaded: true, }); }) .done(); }, 我拥有20多年的专业编程经验这仍然很难遵循。 显然如果省略了done() 您将不会得到任何错误处理 它很奇怪容易出错。 我觉得这背后隐藏了许多代码这使简洁性比简化更为混乱有点像通过Twitter进行政治辩论之后。 对我来说我们的代码是这样简单 react.add(BorderLayout.CENTER, new InfiniteContainer() {public Component[] fetchComponents(int index, int amount) {try {Collection data (Collection)ConnectionRequest.fetchJSON(REQUEST_URL).get(movies);Component[] response new Component[data.size()];int offset 0;for(Object movie : data) {response[offset] createMovieEntry(Result.fromContent((Map)movie));offset;}return response;} catch(IOException err) {Dialog.show(Error, Error during connection: err, OK, null);}return null;} }); 请注意这与上面的代码并不完全等效因为我们还创建了组件将它们添加到UI并处理所产生的错误 比较公平的比较是 try {Collection data (Collection)ConnectionRequest.fetchJSON(REQUEST_URL).get(movies);... } catch(IOException err) {... } 这实际上是一行代码甚至可能更短之后我们得到结果……没有流程没有回调 开发人员经常讨厌Java的检查异常功能我必须同意它们有时会很痛苦如果InterruptedException是愚蠢的但这就是为什么检查异常很重要的一个很好的例子。 我们必须正确地处理错误并且在我们的代码以这种可爱的“ TODO”注释正式投入生产之前不能无视它没人会打扰阅读。 一种语言-更少的代码 清单的大小大致相等但是您会注意到在处理JavaScript代码时react代码会忽略本机特定于平台的代码。 我们的清单包含所有内容不需要其他代码也不需要其他样板项目等。 React Native通过将标签与JavaScript代码混合来进一步有效地将声明性代码混合到常规流中。 是的它缩短了代码但也消除了声明式编程价值的很大一部分即职责分离。 重新加载应用代码更改 可以通过重新加载来调试React Native这在使用糟糕的 Android模拟器时会有所帮助。 幸运的是代号不需要该模拟器也不需要重新启动应用程序即可重新加载已编译的更改……例如在NetBeans中只需在调试器中使用“应用代码更改”您的更改就会立即镜像到正在运行的应用程序中。 脚本语言在“设备上”存在问题 这不是“ React Native”特有的语它与将JavaScript打包在应用程序捆绑包中的所有工具有关。 脚本语言非常适合网络使用就像“管道胶带”一样。 告诉我一个不喜欢胶带的黑客 发行带有这种管道胶带的应用程序的诱惑很大但是与网络不同在网络上您可以通过部署新更新来修复生产中的“怪异未定义”错误。 使用应用程序时您需要通过苹果的审批流程…这意味着在您观察评分下降时仍会存在生产错误。 是的单元测试lint和许多其他解决方案应该可以解决这些问题但是当您使用现代IDE时由于严格的语言语法它可以检测到潜在的null推理这真是太神奇了 例如关于JavaScript简化问题的一个好例子将是这样的代码 function reduce(var a) {if(...) {a a - 1;} else {a a 1;} } 如果这是Java代码那么我们可以确切地知道这里会发生什么……在JavaScript中情况并非如此 让我们假设由于错误只要条件为真某种情况下在所有测试用例中都是这样a就是某种方式为11的字符串那么它将像数字一样起作用。 例如a将变为10 。 但是在生产中如果条件由于某种原因变为假则a将变为111 。 如果a代表某种有价值的东西例如债务信用等那么在商店中有一个带有此错误的应用可能真的很痛苦。 环境 React native使用本地开发环境这意味着它需要Mac才能进行iOS开发。 这也意味着您需要在Android IDE中完成部分工作在Xcode中完成部分工作并使用文本编辑器来完成JavaScript工作。 对于我来说令人惊讶的是开发人员愿意放弃30年的IDE演变而获得一些语法糖果 我们是否受到Eclipse的伤害 今天的IDE令人赞叹您可以通过单个IDE跟踪/调试整个代码这一事实非常宝贵。 我们团队具有立即查看谁使用了什么软件以及出于什么目的的功能这真是令人震惊我无法理解一个这样的事情是如何由两人以上的团队使用的尤其是在分散的劳动力中。 我喜欢JavaScript的地方 我真正喜欢使用JavaScript的一件事是使用JSON的简易性而在下面的代码中我将其大大减少到几乎与它一样优雅的大小。 我仍然不喜欢鸭子类型或脚本语言但是我真的很想将诸如属性对象之类的东西添加到Codename One中并改进集成的解析。 最后的话 我在简洁的编程中发现的问题之一是人们使用它来隐藏基本概念以至于太多的事情以“不言而喻”的方式发生。 不幸的是这使得简洁的代码像Tweet一样易于阅读不幸的是即使您需要表达一个中等复杂的想法Twitter也不会削减它而其中一些API就是一个大问题。 React native有它的粉丝毕竟它可能比PhoneGap更好PhoneGap有其自身的局限性。 但是它仍然是脚本基础架构的鸡腿上的一个有限的概念。 与Codename One相比它没有真正的优势并且存在一些明显的潜在问题。 Java清单 public class ReactDemo {private static final String REQUEST_URL https://raw.githubusercontent.com/facebook/react-native/master/docs/MoviesExample.json;private Form current;private EncodedImage placeholder;public void init(Object context) {UIManager.initFirstTheme(/theme);}public void start() {if(current ! null){current.show();return;}placeholder EncodedImage.createFromImage(Image.createImage(53, 81, 0), false);Form react new Form(React Demo, new BorderLayout());react.add(BorderLayout.CENTER, new InfiniteContainer() {public Component[] fetchComponents(int index, int amount) {try {Collection data (Collection)ConnectionRequest.fetchJSON(REQUEST_URL).get(movies);Component[] response new Component[data.size()];int offset 0;for(Object movie : data) {response[offset] createMovieEntry(Result.fromContent((Map)movie));offset;}return response;} catch(IOException err) {Dialog.show(Error, Error during connection: err, OK, null);}return null;}});react.show();}Component createMovieEntry(Result data) {Container entry BorderLayout.center(BoxLayout.encloseY(new SpanLabel(data.getAsString(title), Line1), new Label(data.getAsString(year), Line2))).add(BorderLayout.WEST, URLImage.createToStorage(placeholder, data.getAsString(id), data.getAsString(posters/thumbnail)));return entry;} public void stop() {current Display.getInstance().getCurrent();}public void destroy() {} }翻译自: https://www.javacodegeeks.com/2015/11/java-is-superior-to-react-native-in-practically-every-way.html
http://www.pierceye.com/news/386229/

相关文章:

  • 2017网站seo如何做wordpress设置登录背景
  • 网站的模块怎么做网站建设的技术支持包括
  • 青岛网站设计哪家好游戏小程序开发定制
  • 建设网站西丽提升网站建设品质
  • 大良营销网站建设方案广东东莞划定多个高风险区
  • 毕业设计做网站用什么品牌网站建设新闻
  • c 网站开发用的人多吗做it行业招标网站有哪些
  • 招聘做牙技工的网站用html框架做网站
  • 本地wordpress站点上传央企网站群建设
  • 广州免费自助建站开发wordpress公园
  • 淘宝客建网站简单网站建设优化推广
  • 长沙做网站找哪家好毕业设计开题报告网站开发
  • 可以写代码的网站有哪些问题吗网页设计与网站建设期末考试试卷
  • 美工做网站怎么收费网站设计规范
  • 建网站需要注意的问题企业整合营销
  • 2018网站开发的革新wordpress 更新数据库
  • 做现金贷的网站有哪些如何自己建立一个网站
  • 网站制作公司前十名wordpress保存的字体大小
  • 网站设计思路方案海外购物网站哪个最好
  • 哪个网站做课件能赚钱青岛制作网站的
  • 深圳做网站排名公司哪家好html网页设计实训报告范文
  • 外贸网站开发做动画 的 网站有哪些软件下载
  • 中国建设银行吉林省分行官网站wordpress形式
  • 做门户网站可以用的字体黑龙江建设教育网站
  • 怎么做网站建设赚钱知名品牌设计logo解析
  • wordpress全站静态化做公司网站 找谁做
  • 广安网站建设哪家好网站模板下载网站
  • 游戏怎么做充值网站wordpress 预约主题
  • 珠海做网站三年多少钱免费ai写作网站3000字
  • 陕西建设网综合服务中心网站跨境电商怎么搞