zoukankan      html  css  js  c++  java
  • 【翻译】培训提示:解决常见编码问题的简单技巧

    原文:Training Tip: Simple Techniques for Solving Common Coding Problems


    非常多时候,在我教授一个Sencha培训课程的时候,学生常常会请求我帮忙看一下他们的应用程序,由于有些问题他们不知道怎样去解决。由于不是我写的代码。因而,有时非常难高速的向他们给出答案。还好。我有一套简单的技术。能够用来筛选出最明显的问题。

    在本文。我将对一些最常见的问题进行分类,并介绍一些简单而有效的策略来解决这些问题。


    问题:我看不到我的数据

    你正在浏览你的应用程序。单看不到不论什么数据。通常,该问题非常easy解决。


    试一下下面方法:

    首先,先检查存储(Store)。能够在应用程序执行时在浏览器控制台来做这个:

    Ext.getStore('MyStore').load();

    这将返回存储对象。

    能够通过data配置项来模拟一些数据。然后看看数组的长度是否大于0。


    假设有可用数据,那么问题可能与渲染有关。

    考虑下面这些可能出现的问题:

    没有将数据字段映射到模型的字段?

    数据数组是否为空?在浏览器开发人员工具栏。单击网络标签页。

    状态码是否200?假设不是,那就是请求出了问题,要检查模型或存储的代理。

    请求工作正常。但仍然没有数据显示?那就要确认返回的数据是否有效。比如,当返回的数据格式是JSON格式的时候,能够从浏览器的网络标签页中将返回的数据拷贝到http://jsonlint.com或http://jsonplint.com/来验证数据是否有效。

    还能够手动编写一些測试数据。


    问题:不能生成应用程序


    Sencha Cmd不能生成应用程序。大多数时候,Sencha Cmd会非常清晰的描写叙述这是怎么回事或者须要做什么改变。

    只是。不管是如今还是以后,都会碰到Sencha Cmd不能生成的问题。并且错误描写叙述也不太清晰的情况。



    这非常有可能是代码存在错误。比如,代码能够非常完美的在本地环境执行,可是不能生成。





    试一下下面方法:

    这种方法非常激进,但大多时候非常有效。在命令行使用同样的命名空间创建一个新的应用程序:

    sencha generate app App ../myapp

    下一步,把app目录复制过来,并确保app.js也做了对应的改动。



    如今,再试一下。


    问题:奇怪的组件-x行为


    这类型的问题一直非常难去处理。



    比如,在网格中不知道为什么显示了多个滚动栏。又或者,在标签页面板中的显示样式是错误的。要在应用程序中解决这类问题非常的费时。这不但须要通过应用程序的导航来重现问题。还要知道造成这问题的包括哪些因素。

    试一下下面方法:

    开发人员常见的解决问题的方法就是将问题隔离起来,将范围缩小。且让数据块更易于管理。

    隔离问题

    使用Sencha Cmd来以同样的命名空间创建一个新的应用程序。



    接着,将有问题的类复制过来并对它进行測试。



    是否出现了同样的bug?尝试在測试应用程序中解决问题。

    还能够更进一步。尝试通过又一次创建类来进行隔离。

    在開始的时候仅仅包括必需的代码。

    它能工作吗?假设框架没有错误。类也没有错误,哪说明肯定是别的东西出现了错误。


    切换到默认主题


    返回应用程序, 并尝试切换到Sencha的默认样式(Sencha Touch中的是Sencha默认样式,Ext JS是海王星主题)。

    能工作吗?假设能。说明问题在自己定义的样式中。

    仍然不能工作?这至少能够知道,自己定义的样式没有错误。这有可能是嵌套造成的错误。也可能是使用了错误的布局。


    组件查询


    要想知道是否组件查询出了问题,能够轻松的在浏览器的开发人员工具的控制台中进行验证:

    Ext.ComponentQuery.query('button[action="test"]');

    是否返回了一个空数组?假设是,问题就在这里!又或者可能是返回了组件。但查询时机错了。

    在处理回调的时候,常常会发生这样的事情。当代码在执行的时候,该组件可能还没渲染到屏幕上的。

    常常使用的调试技术

    作为开发人员,碰到须要解决的bug或问题是常有的事。关键是。使用什么样的工具才干让这变得富有挑战性,是不?

    除了上面提到的技术,还有几个标准技巧。

    首先。要了解框架已经所使用的工具。

    阅读API文档(或者更进一步,浏览器框架的源码)。




    将框架切换为调试框架之中的一个。

    这样做的优点是能够看到额外的日志信息,并且还能够直接阅读框架代码。

    对于Sencha Touch项目,打开app.json文件并暂时改动框架为:

    "js": [
        {
            "path": "../touch/sencha-touch-all-debug.js",
            "x-bootstrap": true
        },
     

    对于Ext JS项目。打开index.html文件并暂时改动框架为:

    <script src="../ext/ext-all-debug.js"></script>

    浏览器的开发人员工具也是相当实用的(Google Chrome或Firebug)。此外。另一些是专门针对Sencha开发使用的便利插件:illumination和Sencha的App Inspector。



    假设想高速设计原型,能够尝试使用Sencha Fiddle。

    对于測试,有大量的工具能够使用 ,如Siesta。

    最后但并不是最不重要的是,假设以上工具都帮不了,而你已经盯着你的代码几个小时了,那么。请你……歇息一下!通常,在歇息的时候,能够放松头脑,说不定就立刻把问题攻克了。尤其是在犯了拼写错误或打字错误(没区分大写和小写)的时候,这会让你郁闷上几个小时,这是由于你会忽略他们。

    须要寻找很多其它的帮助?能够了解一下在世界各地的Sencha Ext JS或Sencha Touch的培训课程,又或者參加在线课程。



    作者:Lee Boonstra
    Lee is a technical trainer at Sencha. She’s located in Amsterdam and has experience in both front-end and back-end development. Lee spends her spare time developing web and mobile apps. She is writing a cookbook for O'Reilly about Sencha Touch.

  • 相关阅读:
    acdream.18.KIDx's Triangle(数学推导)
    upc.2219: A^X mod P(打表 && 超越快速幂(in some ways))
    山东省第四届acm.Rescue The Princess(数学推导)
    BC.5200.Trees(dp)
    BC.36.Gunner(hash)
    hdu.5195.DZY Loves Topological Sorting(topo排序 && 贪心)
    数组倒置算法扩展
    C# 传值和传引用 ( ref out in )
    C# 输出文件夹下的所有文件
    控制反转(自译)
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/8271710.html
Copyright © 2011-2022 走看看