文档章节

ntv.js框架开源的目的

coton_chen
 coton_chen
发布于 2015/01/21 11:14
字数 965
阅读 461
收藏 0

1. 如何来兼容不同厂商的规范?

      在东方有线(OCN)网内有众多不同厂商的机顶盒,各厂商均有自己的机顶盒中间件规范。其中按中间件规范可分为3种分别是iPanel、SHDV、NGB-H。不同的规范定义导致了机顶盒应用在开发同一功能时需要同时使用3种规范定义的接口代码。(接口总api个数均在100+)

     网内高达95%的第三方应用开发商多采用以2种方式来处理,方式1:业务代码与接口代码耦合在一起来处理应用的功能逻辑。方式2:单独将接口代码写在一个文件中,业务代码按不同接口进行调用,来完成页面功能逻辑。这些方式直接导致的问题就是业务与接口代码耦合和脚本文件过长难以扩展和维护。

2. 机顶盒应用脚本调试难的问题

    新入门的应用开发者,面对的第一个问题就是调试难的问题。

    机顶盒浏览同PC浏览器一样支持javascript的alert()函数,但是使用alert()去调试代码非常浪费时间与精力,而且部分机顶盒在调用alert()后会出现死机现象。一般在pc浏览器的做法是采用console.log()或直接开启调试模式,但在机顶盒上这些都无法使用。

3. 厂商中间件内核不一与中间件软件版本众多的问题

   由于不同厂商采用的中间件浏览器的内核不一样,导致类似与PC平台上webkit与IE的相同问题,常见的问题就是CSS显示不一致的问题。这些问题不同于PC平台上已知的问题,而是需要开发者逐步实验得出的结果。    

   另一个问题,中间件也是逐步升级和完善的过程,导致了网内同一款中间件同时存在多种软件版本,对开发来说直接导致的问题就是同一种规范的代码在不同软件版本的机顶盒上会出现无效的情况。而这些问题也是需要开发者逐步实验得出的结果。



ntv.js框架是如何解决上述问题的?

1. 框架将接口代码进行统一封装,在使用过程中对于开发者来说3种规范使用同一接口。

2. 框架按功能和接口进行了划分,让之后的功能扩展及维护更容易。

3. 框架集成了调试模式、常用函数工具类、特效插件和机顶盒特殊处理类。

4. 最重要的,框架累计了厂商不同中间版本的已知bug及特殊问题,对于新开发者来说就是经验值。


ntv.js框架的开源目的?

      正如上面提到诸多问题,为了节省新入门开发者的时间与重复工作量,同时将开发者的焦点集中在应用业务实现上。也希望更多同行的开发者加入框架的代码积与完善及改进方面的考虑。

      编写高质、高效、丰富的机顶盒应用。


在之后的文章中将逐步对机顶盒的开发经验与框架的所有部分进行详细的说明。


© 著作权归作者所有

coton_chen
粉丝 24
博文 25
码字总数 16358
作品 0
静安
架构师
私信 提问
加载中

评论(1)

s
sycru
能提供几个示范吗?谢谢
ntv.js框架(第四章) - 机顶盒Javscript编写和调试方法

在我们编写Javscript时,首先要分清楚2个概念,1是使用W3C标准来处理HTML DOM元素(例如修改标签HTML、文本、状态、形状等),2是使用中间件规范接口来处理音视频等业务功能(例如播放音视频...

coton_chen
2015/02/02
1K
3
ntv.js框架源码解读 - 3key.js

3key.js源代码: ntv.key类,遥控器键值和系统消息的监听代理接口及遥控器键值的绑定。 ntv.key = function(){}; ntv.key.init = function(){ this.listener_keyevent(); // 键值事件监听,监...

coton_chen
2015/02/05
433
0
ntv.js框架源码解读 - 4navigation.js

4navigation.js源代码: ntv.navigation类,处理页面焦点移动和确认、刷新等操作动作。 在讲解框架处理焦点移动前,先讲解下机顶盒上焦点移动的工作原理,以便开发者能更好的了解框架采用这种...

coton_chen
2015/04/29
685
4
ntv.js框架源码解读 - 1common.js和2core.js

1common.js源代码: 全局 $ 对象,类似于jQuery框架的命名形式,用于缩短函数名,精简代码。此文件只包含提供全局作用域的常用对象。 var $ = function(selector){}; // Id选择器的函数封装。...

coton_chen
2015/02/04
553
0
ntv.js框架(第二章) - 源代码目录结构

源代码目录结构: css // 包含一些标签默认样式重置、常用class、组件所需的css样式 images // 包含了2张透明图,具体用处后续介绍(可选目录) js // 框架核心代码 js/effect // 框架提供的...

coton_chen
2015/01/27
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

DevOps是如何实现效率的提升?

随着企业业务对软件系统日益依赖,IT管理与研发模式也随之对“敏态”模式产生了需求,也就是今天时常提起的DevOps。提升效率,是DevOps实践的核心内容之一。就让我们来一起从软件生命周期的业...

嘉为科技
24分钟前
2
0
总结:linux目录之proc

我们系统大部分的基础数据采集,其实就是读取proc目录下的文件,并解析获取数据的过程。 1、如cpu利用率:直接cat /proc/cpuinfo命令,然后获取输出内容,并解析里面的数据,如cpu核数等; ...

浮躁的码农
26分钟前
2
0
比原Bapp红包应用

喜迎国庆期间,比原链在自己的移动端钱包Bycoin(下载地址)和google插件钱byone中推出了红包应用,在国庆期间深受大家好评。 那我们今天就来大概介绍一下比原红包,以及基于比原链开发dapp应用...

比原链Bytom
27分钟前
2
0
Linux中没有rc.local文件的解决方法

Linux中没有rc.local文件的解决方法是什么呢?这应该是很多工程师比较头疼的问题,下面就给大家例举几个解决办法。 比较新的Linux发行版已经没有rc.local文件了。因为已经将其服务化了。 解决...

xiangyunyan
27分钟前
2
0
数据中台在阿里巴巴集团内部的实践情况

作者:品鉴 数据中台门在阿里巴巴集团干什么的,由哪个部门掌管?数据中台在阿里巴巴的主要作用是什么呢?外面吹嘘这么神秘的数据中台在阿里实践的如何呢?今天小编正好要采访数据技术及产品...

阿里云官方博客
28分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部