【原创干货】 长篇深度分析在线旅游行业

正文将介绍以下内容:

到今日结束,2015年以过了大体上多矣,不妨稍小回顾下于炒之酷热之几只领域:互联网经济、O2O、智能硬件、移动电商、大数据等。

  • 种类的基本概念 
  • 值类型深入
  • 援类型深入
  • 值类型与援类型的比和使用

葡京在线开户 1

[下载]:[项目示例代码]

20130826010959911

 

虽然“目光聚集之处在,金钱必将追随”,但本身总相信创新之idea总有在人们不经过意间。前几乎龙携带程bug的音赚够了看客们的眼球,由此被自己想到了关心已老之在线旅游行业的进化,在斯“被忘记的角落”这些年还起了什么变化吗?
在线旅游行业市场分析
市面概述:
定义:
广义上在线旅游是:“依托互联网,以满足漫游消费者信息查询、产品预定及服务评价呢中心目的,囊括了席卷飞企业、酒店、景区、租车企业、海内外旅游局等旅游服务供应商及搜索引擎OTA、电信运营商、旅游资讯及社区网站相当于在线旅游平台的新产业恰恰处在迅速上升期。该产业要靠互联网,与俗旅游产业为门店销售的章程形成气势磅礴差距,被旅游从业人士称‘在线旅游’。”
狭义上得以这样理解:“在线旅游指的凡透过网的不二法门查看与预订旅游产品,并可通过网分享旅游还是旅行经验,而非经在线(网络)的办法游览或者旅行。”通过定义可以窥见,在线旅游是显著的社交趋向。
开拓进取阶段:
宏观:到目前为止整个的在线旅游行业但分为5只提高阶段
(1)
第一号(90世纪最后-20世纪初)在线旅游花费的养阶段,
要靠机票预订+酒店预订的“佣金模式”,即网站和供应商(酒店、航空公司相当)合作,通过网为买主提供信息,
顾客通过网站平台预订酒店要么机票。这个等级为携程和艺龙为代表。
(2)
第二路(2003——2006)在线旅游市场之提高阶段,
芒果、同程等进入在线摄市场,引入多元成熟之线下产品。不同代理商报价差异比较老,提供比价服务的垂直搜索网站出现,如错过哪里网。
(3)
第三路(2006——2010)在线旅游的快提高等,
呈现细分化和社交化特点,随着社会经济之发展,人们生活档次的增强,度假的需求愈加多,出现了驴妈妈、途牛等构成旅游景点和远足线路计划,提供在线订购细分服务的网站。这无异品在线旅游用户成熟,需求于订货延展到交流,旅行网站社交化,如分享攻略的蜂窝网,旅游点评的及到网。
(4)第四号(2010——2012)在线旅游的布局阶段,出现强劲的竞争者,腾讯、淘宝、京东齐名好电商企业进军在线旅游平台市场,提供观光比价并抽取佣金。
(5)第五级(2013——)在线旅游市场不断提高等,展现移动化、碎片化等特性,移动端市场成为在线旅游市场的重大抢夺对象,移动APP创业公司纷纷涌现,用户指向出境游的市场需求得到更加划分。
微观——特指中国在线旅游移动端市场发展现状,截止到2014年可划分吧4独号,到2015年在线旅游端表现持续提高等,市场增量巨大。

1. 引言

葡京在线开户 2

值类型与援类型的话题经过了个别独回合([第八扭转:品味类型—值类型及援类型(上)-内存有理]和[第九拨:品味类型—值类型和援类型(中)-规则无边])的讨论与钻研,我们便着力的知晓层面来说都多了,但是针对立即同有些的越来越把与重浓的懂得还要延续与加重,因为自要好不怕以点滴篇发布之际,我就获取配脑袋哥哥的不倦指导,之后同时翻了多底资料发现项目在.NET或者说语言基础中多么重要的内蕴及纵深,因此关于此话题的议论还没停歇,以后本人用连续享受温馨之所得及所感。

123213

而是作为一个等级,本文将值类型和援类型的讨论起运示范角度来更为做盖延长,可以看成是本着前方少转的补充性探讨。我们于类型定义、实例创建、参数传递、类型判等、垃圾回收等几乎单方面来概括的针对性达成个别扭曲的情做为剖析,并以自然之IL语言和内存机制来证明,期望进一步强化我们的明以及剖析。 

图片来自艾瑞网
发展趋势
重组在线旅游之进步等可以发现那个提高的大约方向
移动化趋势明确。依据2014年易观智库公布的《中国移动互联网数据盘点与2015预测专题报告》数据展示,中国移动互联网用户规模加速就走小,但用户数及3亿总人口,与2013年比增长11.8%,继续保持正超越PC端用户量的姿态。国内移动互联网市场层面迎来加速高峰值,增长率同比上183.8%,总量也13438亿首位人民币。PC端功能衰弱,最终变成活动端的援或受替代。
生重复多垂直细分领域。在线旅行类制品将整合移动端碎片化、快捷化、轻量化的表征及用户采取状况而起还多的有些而得意系列之垂直产品。如近期携程推出的“携程周末”,同类的还有“美周末”“懒人周末”。此类产品多从用户的施用状况分析入手,有对的缓解一个场景下的一个痛点。
渗透率呈现持续增高方向。由此艾瑞的统计数据可以窥见在线旅游市场之市规模已然达到千亿头的程度,结合来拘禁,其中在线机票,在线酒店,在线预订类的劳务趋近于成熟,而以线度假,旅行攻略,周边游荡,旅行社区等细分市场发展潜力巨大。

2. 以代码剖析

葡京在线开户 3

下,我们为一个经的值类型和援类型对比的演示来分析,其区别与实质。在分析的长河被,我们第一因为履行分析(主要是代码注释)、内存分析(主要是图例说明)和IL分析(主要是IL代码简析)三只地方来挨家挨户知识点解析,最后更做为总结描述,这样虽可以发重新特别的掌握。

1231231

2.1 类型定义

**前景底在线旅游市场布局或以表现巨头+细分垂直企业现有的局面。
**随着携程+艺龙的“联姻”在线旅游的巨头地位基本奠定,且当2015-2020年里颇为难中动摇,巨头垄断下之在线机票、酒店工作已然成熟,发展潜力缩小,细分垂直类企业若能充分分析用户用状况,抓住某个使用状况的最为深痛点,并提出要解决方案虽能够在商海重撕出自己之垄断地位或寻求巨头收购或自建生态系统。
市面分:
宏观上:根据产品之习性大致归为以下重点词(欢迎补充),市场的剪切有助于新型的创业企业找到适合自己的提高切入口和排除有些曾迈入成熟之划分领域。
团购
机票
景区门票
攻略
酒店
以线度假市场:国内游、境外游、周边游荡、自驾游、自助游、跟团游、周末逛
签证
保险
租车/打车

概念简单的值类型MyStruct和援类型MyClass,在后的示范中拿逐级完善,完整的代码可以点击下载[类型示例代码]。我们的议论现在起来,

…………
微观上——特指移动app领域,根据活动端的功用特色可分开如下:
预定类:良好的预约体验+特色信息服务呢竞争主要
导游类:此的“导游”已颠覆了民俗导游的概念,而成了地图、导航、语音说明、行程计划等各种功能的叠加。导游类APP又细分四栽:城市导览、景区导航&室内地图、虚拟现实、图读。
分享类:分享用户的远足感受,旅行日程安排,旅行攻略

  • 代码演示

每一个型对应之制品线调性与基本职能点明确是发出分之,对效益特色的分类分析好适用于心力风暴之座谈着,每一个职能类别又足以细分来又多的idea。
市面要问题跟机会分析
首要问题
机会

    // 01 定义值类型
    public struct MyStruct
    {
        private int _myNo;

情极其重:若是蚂蜂窝、穷游网类产品,攻略同游记都是拖泥带水,实际上用户是从来不耐心去读之,对于用户来说,关注的重要是几乎个主导信息,吃、住、游、行、购等实用信息
打用户体验角度出发精简产品,直接展现给用户最为实用的音信。

        public int MyNo
        {
            get { return _myNo; }
            set { _myNo = value; }
        }

产品化程度不强:一经只是供旅游信息的浏览那么和风俗习惯的畅游杂志等媒体是未曾分别的,用户还希望之是轻量级的用,可以自行帮助夫分类,串联行程,在旅行最终结束的时自动行程有个性之远足路书。
优化现有产品,从技术之晋升角度简化用户操作,缩短操作流程,局部实现自动化。

        public MyStruct(int myNo)
        {
            _myNo = myNo;
        }

介入门槛太胜:动端类制品增长用户的涉企感很重要,一首简单游记如果欲用户消费大量之辰输入文字,上传照片等任何操作,往往会下跌用户的插足积极性。
简化用户参与内容做的手续,创新表现方式,使得用户的操作流程进一步轻量化,简单,轻松又具备美感。提高用户的我满足感。

        public void ShowNo()
        {
            Console.WriteLine(_myNo);
        }

重中之重产品功效对比——移动端app
既移动端是不可避免要不足错过之一个样子,那么就的动端app产品之效应都出什么吧?了解产品效果的极其好点子就是通过竞争对手,以下我根本从AppStore抽出了一部分装有代表性的成品以阐释各移动端app功能对比。(欢迎补充)
**正如维度为:
**GPS+导航带、图文分享+行程记录、景点+商家信息、离线使用、打分+点评、社交+互动性、旅行产品价格+预定、PC与App的同步性、用户体验、功能核心、用户性质
展开测评的16单运动旅行类APP按照以下标准从苹果商店的iTunes
Store旅行类排行榜中筛选而出;全部APP均来源于中国区旅行类免费排行榜的前面200名为;排除了酒楼以及机票预订相当预订类APP。
马上16只APP大致可分为两看似:10独由创业企业开发之APP;6个由百度、去哪里、携程网、同程网、途牛等旅游搜索以及要OTA开发之APP。

    }

葡京在线开户 4

 

12321313

    // 02 定义引用类型
    public class MyClass
    {
        private int _myNo;

        public int MyNo
        {
            get { return _myNo; }
            set { _myNo = value; }
        }

葡京在线开户 5

        public MyClass()
        {
            _myNo = 0;
        }

2131231243

        public MyClass(int myNo)
        {
            _myNo = myNo;
        }

PS:整理是,用图要标明出处
经过以上的成效对比结合产品之概念及和气的制品体验活动端未来向上之显要作用点如下:
GPS导航及地图指引
用户展开图文分享和程记录功能
目的地景点与合作社信息 (主要是见方式达成的换代)
里程游记的分享与用户中的互动 (用户参与感)
离线导游

        public void ShowNo()
        {
            Console.WriteLine(_myNo);
        }
    }

……
总的说来,未来亦可高效,高效之增援用户进行行前决策的略微如美,轻而薄的出品将越加受到市场青睐。
在线旅游市场用户属性简述
性别:在线UGC用户以男性为主,51.7%VS48.3%
年龄:集中在20-35岁之间
所在:集中在广东、北京、江苏,沿海都跟薄城市占比生
育水平:大学本科占比不过可怜,教育水准比较高
职业:
UGC用户主要集中在企业一般在职员工,研发/技术,专业人士之中,目标群体素质比较高
收入:集中在3000及2000内,用户消费能力比较高

  •  IL分析

葡京在线开户 6

234235345

葡京在线开户 7 

图形来源于艾瑞网
采用状况分析维度
由于走端的运状况的多样性,这里仅仅提供相同种考虑方式,值得注意的是活之换代往往来自于对用户用状况的中肯解析+大胆设想,达到提供高速解决办法的目的,因此无需过度框架化。
旅行前
早就规定目的地:
用户A已经确定带爱妻利用十一底略长假去马尔代夫自由行,在旅行前用制定攻略,内容囊括票务、住宿的预定,行程的整体规划,去何方玩,有什么好玩的,有什么好吃的,玩几龙,大概的用预算是聊,什么时去太好。
** ****未规定具体的目的地:**
B用户打开某采取,查看攻略,浏览信息,主要是失去哪里、住呀、有啊好玩的,费用大致是微,在这进程遭到攻略内容之趣味性成为用户要关心的点。
旅行中
张好玩的,特别好吃的,拍下,发表下好之评介,一边看一边记录
旅行后
返住处,系统能够自动生成旅行路书,用户C利用休息时间查看一龙之行程轨迹。查看网友的品/问答展开相互。
产品合计方向
实则,通过上文提到的市场、用户、使用状况三老大模块的解析是力所能及获取一个新式产品框架的,值得一提的是,最终之之最新产品框架或更多的倚重让对用户采取状况的拆+目标用户的性状,形成一个出品闭环。曾于网及看到一个挺有意思的最新旅行产品之设想(忘记原作者了……)刚好符合当立首深度分析文的末段:
立马款产品之骨干设想是UGC+LBS的成,主要的功用及操作逻辑就是躲于偏下三个层次的叙述着:
一、碎片。此依的零碎是用户“一切以中途会遇到的物”,比如一个风景、一个酒家、一个菜色、一下加油站等等,全部碎片化并同构为“一张图片+一段描述+一个地理位置”。当然和构后的组织或还要还繁杂一点,比如可多摆图纸,但是此间犯极端简便的处理。
二、组织。产品方可以所谓“路线”或“功略”来团有这些碎。比如我做了一个杭州攻略,其中便可能发生这些散装“雷峰塔、西子国宾馆、白堤、某外婆家的姥姥炒蛋……”,这些零碎可能按照日清除,也得以地理排。也堪用作用户发布的竹签选择,当我交杭州游览时,就好用手机随时调用我之功略,指导出行,并随时为每个碎片拍照或者Check
In。当我因迷路错过一个零碎,也从未干,周边的别碎片会给推荐,随意选取一个随着打吧。拍照的时光相机自带地理位置功能不需要再次长。
三、再组织。当我打回家,之前在游戏过程中之Check
In行为同拍照表现,就于系统自动整理也“游记”,而另外一个用户可以略地copy我的游记,改动其中几只七零八落,成为他顶杭州环游的“功略”。
如此一来,功小 > 签到 > 游记 >
功略……就成为了一个循环往复,信息让重复尽地应用。

分析IL代码可知,静态方法.ctor用来代表实现构造方法的概念,其中该段IL代码表示将0赋给字段_myNo。

如此的产品而见面喜欢呢?
笔者目前正值对是领域展开深度研究,欢迎对之领域感兴趣之情人等一块来脑暴哟~

2.2 创建实例、初始化及赋值

连片下,我们做到实例创建及初始化,和精炼的赋值操作,然后于内存和IL分析着发现其庐山真面目。

  • 代码演示

葡京在线开户 8葡京在线开户 9始建实例、初始化及赋值
        public static void Main(string[] args)
        {
            //内存分配给线程的仓库上
            //创建了值为等价”0″的实例
            MyStruct myStruct = new MyStruct();
            //在线程的仓库上创办了援,但未因于外实例
            MyClass myClass;
            //内存分配受托管堆上
            myClass = new MyClass();

            //在仓库上改动成员
            myStruct.MyNo = 1;
            //将指针指向托管堆
            myClass.MyNo = 2;

            myStruct.ShowNo();
            myClass.ShowNo();

            //在库房上新建内存,并尽成员拷贝
            MyStruct myStruct2 = myStruct;
            //拷贝引用地址
            MyClass myClass2 = myClass;

            //在库房上修修改改myStruct成员
            myStruct.MyNo = 3;
            //在托管堆上改动成员
            myClass.MyNo = 4;

            myStruct.ShowNo();
            myClass.ShowNo();
            myStruct2.ShowNo();
            myClass2.ShowNo();    
        }       

  • 内存实况

第一是值类型和援类型的概念,这是举面向对象的开始,

葡京在线开户 10  

 然后是初始化过程,

葡京在线开户 11 

 简单的赋值和拷贝,是极度核心的内存操作,不妨看,

葡京在线开户 12  

2.3 参数传递

  • 代码演示

 

 

葡京在线开户 13葡京在线开户 14参数传递
    // 04 ref和out
    public class RefAndOut
    {
        public static void Main()
        {
            //必须开展初始化,才会应用ref方式传递
            int x = 10;
            ValueWithRef(ref x);
            Console.WriteLine(x);

            //使用out方式传递,不必初始化
            int y;
            ValueWithOut(out y);
            Console.WriteLine(y);

            object oRef = new object();
            RefWithRef(ref oRef);
            Console.WriteLine(oRef.ToString());

            object owith;
            RefWithOut(out owith);
            Console.WriteLine(owith.ToString());
        }
        static void  ValueWithRef(ref int i)
        {
            i = 100;
            Console.WriteLine(i.ToString());
        }
   
        static void  ValueWithOut(out int i)
        {
            i = 200;
            Console.WriteLine(i.ToString());
        }

        static void RefWithRef(ref object o)
        {
            o = new MyStruct();
            Console.WriteLine(o.ToString());
        }

        static void RefWithOut(out object o)
        {
            o = new String(‘a’, 10);
            Console.WriteLine(o.ToString());
        } 
    }

无需多说,就是一个简单阐述,对于参数的传递作者用计划坐还多的笔墨来以后头的数不胜数中做为弄清和深刻。

2.4 类型转换

类型转换的言传身教,包括过多个点,在此我们只有为打定义类型转换为条例来做盖证,更详细的类型转换可以参照[第九回:品味类型—值类型以及援类型(中)-规则无边]的[又遵照类型转换部分]。

  • 代码演示

第一是值类型的自定义类型转换,

 

    public struct MyStruct
    {        
        // 01.2 自定义类型变更:整形->MyStruct型
        static public explicit operator MyStruct(int myNo)
        {
            return new MyStruct(myNo);
        }

    }

然后是援类型的自定义类型转换,

 

    public class MyClass
    {
        // 02.2 自定义类型转换:MyClass->string型
        static public implicit operator string(MyClass mc)
        {
            return mc.ToString();
        }

        public override string ToString()
        {
            return _myNo.ToString();
        }
    }

最终,我们本着由定义之项目做盖测试,

        public static void Main(string[] args)
        {          
            #region 03. 类型转换
            MyStruct MyNum;
            int i = 100;
            MyNum = (MyStruct)i;
            Console.WriteLine(“整形显式转换为MyStruct型—“);
            Console.WriteLine(i);

            MyClass MyCls = new MyClass(200);
            string str = MyCls;
            Console.WriteLine(“MyClass型隐式转换为string型—“);
            Console.WriteLine(str);
            #endregion                   
                   }       

2.5 类型判等

项目判等主要概括:ReferenceEquals()、Equals()虚方法和静态方法、==操作符等地方,同时注意在值类型和援类型判等时之不同之处,可以参照[第九掉:品味类型—值类型和援类型(中)-规则无边]的[4.
还按品种判等]的简述。

 

  • 代码演示 

// 01 定义值类型
public struct MyStruct
{

// 01.1 值类型的品种判等
public override bool Equals(object obj)
{
return base.Equals(obj);
}

}  

public class MyClass
{

// 02.1 引用类型的花色判等
public override bool Equals(object obj)
{
return base.Equals(obj);
}

public static void Main(string[] args)

{

#region 05 类型判等
Console.WriteLine(“类型判等—“);
// 05.1 ReferenceEquals判等
//值类型总是回到false,经过简单赖装箱的myStruct不可能针对同一地点
Console.WriteLine(ReferenceEquals(myStruct, myStruct));
//同一引用类型对象,将针对同样的内存地址
Console.WriteLine(ReferenceEquals(myClass, myClass));
//RefenceEquals看null等于null,因此回到true
Console.WriteLine(ReferenceEquals(null, null));

// 05.2 Equals判等
//重载的值类型判等措施,成员大小不等
Console.WriteLine(myStruct.Equals(myStruct2)) ;

//重载的援类型判等艺术,指向引用相同
Console.WriteLine(myClass.Equals(myClass2));

#endregion

}  

2.6 垃圾回收  

首先,垃圾回收机制,绝对免是三言两语就能坦白清楚,分析了解的。因此,本示例只是于不过简单易行的验证出发,对污染源回收机制做盖简要的辨析,目的是坚持不懈的招实例由创建及流失的皆经过。

  • 代码演示

public static void Main(string[] args)
{

#region 06 垃圾回收的简约阐释
//实例定义及初始化
MyClass mc1 = new MyClass();
//声明但未实体化
MyClass mc2;
//拷贝引用,mc2和mc1乘为同一托管地址
mc2 = mc1;
//定义另一样实例,并成功初始化
MyClass mc3 = new MyClass();
//引用拷贝,mc1、mc2据为了新的托管地址
//那么原来的地址成为GC回收的靶子,在
mc1 = mc3;
mc2 = mc3;
#endregion

}  

  • 内存实况

葡京在线开户 15 

GC执行时,会遍历所有的托管堆对象,按照一定之递归遍历算法找来具有的可达对象及不可看对象,显然本示例被之托管堆A对象没被其他引用访问,属于不可看对象,将为列入执行垃圾收集的目标。对象由newobj指令产生,到吃GC回收是一个复杂的长河,我们愿意在多重之后期对这个召开为浅显的接头。 

2.7 总结陈述

这些示例主要由于基础的倾向入手来分析前前片拨被的追,不求能够到而深,但请能一点设及面的进行,技术的魅力正在于千变万化,技术追求者的力求却是于扭转备受寻求不换,不然我们精神太难为了,我想立刻便是好方式,本系列希望的就是是提供一个输入,打开一个道。示例的详细分析可以下载[类示例代码],简单的辨析希望能带来丝丝惬意。 

3. 结论

值类型和援类型,要说之,要开的,还有众多。此篇只有是一个号,更多的深切和探究我信任还于后续,同时泛的关怀技术能力的成材,是每个人应当进取之空中以及道。

品味类型,为用之路开辟技术基础。

尝类型,继续追还会还多优质。
————引用地址:http://blog.csdn.net/netzhou/archive/2007/06/27/1668641.aspx