官术网_书友最值得收藏!

Begin with the end in mind

Planning the application begins with determining what the application will and will not be when it is done. What must the application be able to do to be successful, and how does that definition of success compare to average requirements? Questions to consider while answering this include the following:

  • Will the application be used on a multitude of devices of varying screen sizes and input types, or will users primarily be using a single class of devices?
  • What type of network connectivity will users' devices have?
  • Which browsers will they be using?
  • Will the application be installed on a mobile device as a PhoneGap application?
  • Will some users be installing an application while others are using the hosted version?

Answers to these types of questions quickly start to drive some design considerations.

Let's consider a few examples. If the application needs to be used by modern devices with slow network connections, but possessing plenty of local resources, minimizing network usage is going to be critical to a good user experience. This is common with field service workers. We can equip the field staff with good devices, but we are likely to be dependent upon a cellular provider for connectivity that could be limited to 3G service in a service area. Here, we can look to cache as many of our resources as possible to minimize network utilization. We may have some larger sets of data that are beneficial to keep around in the client-side and we may use client-side querying to create local views on that dataset.

If, however, the application is to be used continuously on older desktops with adequate network connectivity but with little memory to spare, our focus changes. This was the situation for a mid-sized electronics retailer's return merchandise authorization (RMA) system. They needed to modernize their RMA application, but they were constrained in their ability to upgrade the hardware installed at each location. In this case, we need to keep the memory footprint consistently small. We are likely to favor fetching data in small distinct chunks instead of filtering views on locally cached datasets. As we have a strong network, we can afford to make more service calls that return smaller datasets in order to avoid overrunning available system memory.

Finally, if the application is to be used by a variety of devices with a variety of browsers and screen sizes, suitability to all these devices becomes a driving factor. Do we develop several versions of the application, one for each target device class, or do we have a single set of pages that provide a lowest common denominator approach?

These examples only scratch the surface of the considerations that may drive other considerations. WaveMaker applications have been deployed in an amazing range of configurations. Sometimes, a single requirement can dictate many aspects of the project. It is also important that the application performs well; users hate to wait.

With the application's driving design considerations determined, we can begin to design our application. Combined with some understanding of performance factors, we can be confident of successful results.

主站蜘蛛池模板: 山东省| 梧州市| 丹凤县| 鄂托克旗| 呼伦贝尔市| 闻喜县| 象州县| 温州市| 普安县| 庆安县| 察雅县| 万全县| 增城市| 霍林郭勒市| 仲巴县| 依安县| 汶川县| 萍乡市| 离岛区| 清涧县| 鄂尔多斯市| 阳谷县| 呼伦贝尔市| 葵青区| 清水河县| 青冈县| 醴陵市| 广河县| 方城县| 勃利县| 灵石县| 大城县| 博客| 游戏| 旌德县| 双城市| 天津市| 涞水县| 彰化县| 拉孜县| 榆林市|