觉得产品合计能发挥的空中很小,允许外界释放其资源从而使其废弃这么些所有权

问问:我间接有一个很大的迷惑,不精通什么样去深刻驾驭一个笔直行业。
严谨来说,我不知道如何挑选一个垂直行业。假诺没有很铁的仇敌,没有特意的节骨眼,可挑选的垂直行业最为多,我该去驾驭何人吗?到了“垂直行业”那几个体量,已经无法用兴趣去筛选,更加多是看缘分。
咱俩都明白当下互连网做产品的机遇,更加多是和垂直行业整合,那时产品经理狭义上的能力并不重大,你就是个完成工具。关键是深深明白垂直行业,调动资源解决难点,即使自己能经受降薪降级从中层做起,第一选不好垂直行业,第二中层恐怕也谈不上“深刻了然”,直接做主旨层又没资格——传统行业的论资排辈,人事关系是那样复杂。
据此自己只得继续做狭义的纯线上的互连网产品,哪怕机会越来越少。不知道其余产品主管如何看待这些标题?

人说现在的节假期越来越平淡,越发是到了过年的时候,每个人如同都在挂念年味,每个人如同都以为那年味怎么越来越淡。

http://blog.163.com/modingfa\_002/blog/static/11092546620115895230167/

escphoton:
纯线上的网络产品机会太少了,我的不二法门是选拔一个团结喜爱的垂直行业,在同行业里尽量发挥网络的特性,使用产品合计去做事,不把团结局限在产品经营的角色。

即使,大家却又如此期待着节日。于是广大回想日变成了千堵万堵,人挤人,人看人,都说过年窝在家里,那也不去了,可每当节日来临,心却想着远方,想着异地的景色。



可是那年不同,四处关门,没个去处,于是城里人跑去乡下寻找年味,农村人却想着城里现在热闹。农村的小伙都急不可待打工赚钱,哪有思想待在乡下。

QT smart point 智能指针  

2011-06-08
09:52:30|  分类:
qt-high-level
|  标签:指针  qt  shared_ptr  std  label  
|字号 订阅

 

 

  1. QPointer (4.0)
     已经过时,可以被QWeakPointer所替代,它不是线程安全的。
  2. QSharedDataPointer (4.0)
     — 提供对数据的COPY-ON-WRITE以及浅拷贝,提供对数码(而不是指向数据的指针)的线程安全的掩护。(注:提供对数码的线程安全保险要组成QsharedData来形成),它是线程安全的。
  3. QSharedPointer (4.5)
       — 达成了引用计数的可共享资源的强类型指针,它是线程安全的。
  4. QWeakPointer (4.5)
         — 达成了引用计数的可共享资源的弱类型指针,它是线程安全的。
  5. QScopedPointer (4.6)
      — 达成了非引用计数的独享资源的强类型指针,它是线程安全的。

strong pointer :  在有它所指向的资源的所有权期间,永远不会摒弃这么些所有权。 

weak pointer:在有它所指向的资源的所有权时期,允许外界释放其资源从而使其扬弃这些所有权。 

QSharedPointer有着与std::auto_ptr类似的性状,而最大的分裂在于它无法转让所有权而auto_ptr可以。事实上,scoped_ptr永远不可能被复制或被赋值!

 

上面代码应用QSharedPointer,QWeakPointer和QScopedPointer的言传身教:

view
plain
copy
to
clipboard
print?

  1. int main(int argc, char *argv[])  
  2. {  
  3.     QCoreApplication a(argc, argv);  
  4.     //raw pointer  
  5.     QString *p = new QString(“hello”);  
  6.     //Implements non-reference-counted strong pointer  
  7.     QScopedPointer<QString> pScopedPointer(new QString(“Scoped”));  
  8.     // Build error, can NOT be shared and reference-counted  
  9.     //QScopedPointer<QString> pScopedPointer2 = pScopedPointer;  
  10.     //Implements reference-counted strong sharing of pointers  
  11.     QSharedPointer<QString> pSmart(new QString(“Smart”));  
  12.     QSharedPointer<QString> pSmart2;  
  13.     pSmart2 = QSharedPointer<QString>(new QString(“smart 2”));  
  14.     QSharedPointer<QString> pSharedPoninter;  
  15.     // can be shared safely and reference-counted  
  16.     pSharedPoninter = pSmart;  
  17.     qDebug() << *(pSmart.data());  
  18.     qDebug() << *(pSmart2.data());  
  19.     qDebug() << *(pSharedPoninter.data());  
  20.     QTimer *timer = new QTimer();  
  21.     QWeakPointer<QTimer> pWeakPointer = timer;  
  22.     //Weak pointer’s resources can be deleted from outside world  
  23.     delete timer;  
  24.     if (pWeakPointer.isNull())  
  25.     {  
  26.         qDebug() << “contained QObject has been deleted”;  
  27.     }  

 

入门程序

#include <QApplication> 
#include <QLabel> 
int main(int argc, char *argv[])
 {     
 QApplication app(argc, argv);    
 QLabel *label = new QLabel("Hello Dbzhang800!");     
label->show();     
return app.exec(); 
}

在  从 Qt 的 delete
说开来

一文中,大家关系那么些顺序存在内存败露(表现就是析构函数不被调用),而且当时交由了二种缓解办法:

  • 将label对象分配到stack而不是heap中
  • 给label设置标记位Qt::WA_DeleteOnClose

  • 协调调用delete来删除通过new分配到heap中的 label 对象

注:

  • 为了能领悟观察社团和析构函数的调用,大家得以不难子类化了一晃QLabel,然后用Label取代前边的QLabel

    class Label :public QLabel 
    
  • {

  • public: Label(const QString& text, QWidget *parent=NULL) :QLabel(text, parent){qDebug(“from constructor”);} ~Label(){qDebug(“from destructor”);}

  • };

本文中,大家从智能指针(smart pointer)角度接二连三考虑那几个标题

cicada:
@escphoton
不知底您是何许选垂直行业——拿自己要好举例子,我爱好旅行行业,但并不认得行业里的意中人,传统行业和线上产品分化,无法靠外部观望就能博得经验。

有时难免感慨,最隆重的节日在过去,在小儿,更在随笔里。

智能指针

为了管住内存等资源,C++程序员平时采用RAII(Resource Acquisition Is
Initialization)机制:在类的构造函数中申请资源,然后利用,最终在析构函数中自由资源。

假定没有智能指针,程序员必须确保new对象能在正确的空子delete,随地编写万分捕获代码以自由资源,而智能指针则可以在脱离职能域时(不管是正常流程离开或是因不胜离开)总调用delete来析构在堆上动态分配的靶子。

俺们看看Qt家族的智能指针:

智能指针

 

引入

QPointer

Qt Object 模型的特性(之一)
注意:析构时不会delete它管理的资源

 

QSharedPointer

带引用计数

Qt4.5

QWeakPointer

 

Qt4.5

QScopedPointer

 

Qt4.6

QScopedArrayPointer

QScopedPointer的派生类

Qt4.6

QSharedDataPointer

用来实现Qt的隐式共享(Implicit Sharing)

Qt4.0

QExplicitlySharedDataPointer

显式共享

Qt4.4

     

std::auto_ptr

   

std::shared_ptr

std::tr1::shared_ptr

C++0x

std::weak_ptr

std::tr1::weak_ptr

C++0x

std::unique_ptr

boost::scoped_ptr

C++0x

注:

  • MSVC2010 和 GCC g++ 4.3 支持 C++0x
  • MSVC2008 sp1 及 GCC g++ 4.0 支持 tr1

有了这么些东西,大家就可以很不难改造大家面前的事例了(只需变更一行):

std::auto_ptr<QLabel> label(new QLabel("Hello Dbzhang800!"));

依照你所用的Qt的版本,以及C++编译器的支撑程度,你可以选择:

  • QScopedPointer
  • std::unique_ptr
  • QSharedPointer
  • std::shared_ptr
    • std::tr1::shared_ptr

还要我也质疑那种重供应链的行业并不符合自己——在携程管过一段时间他们的业务部门(没接触到供应链),觉得产品合计能发挥的空间很小。“定战略,堆货,优惠”,高层定好战略之后就起来拼执行力,所谓的“产品合计优化”不主要。

《边城》中写到:边城所在一年中最红火的小日子,是下元节、中秋节和过年。七个节日过去三五十年前,怎么样欢快了那地点人,直到现在,还并非什么变动,依旧是那地点居民最有意义的多少个生活。

QPointer

怎么翻译啊?我不太精晓,保留英文吧。

  • The QPointer class is a template class that provides  guarded
    pointers
      to QObjects.

  • 运用:一个guarded指针,QPointer<T> ,行为和正常的指针 T *
    类似

  • 特色:当其针对性的对象(T必须是QObject及其派生类)被灭绝时,它会被电动置NULL.

    • 小心:它自己析构时不会自动销毁所guarded的目的
  • 用途:当您要求保留其余人所持有的QObject对象的指针时,这点卓殊实用

一个例子

     QPointer<QLabel> label = new QLabel;      label->setText("&Status:");      ...      if (label)          label->show();

若果在…部分您将该目的delete掉了,label会自动置NULL,而不会是一个高悬(dangling)的野指针。

QPointer 属于Qt Object模型的基本机制之一,请留意和其他智能指针的界别。


小说中爱戴描写了下元节的事态,小说里写得隆重。

std::auto_ptr

那几个没多少要说的。

  • 无法让四个auto_ptr
    指向同一个对象!(auto_ptr被灭绝时会自动删除它指向的目的,那样对象会被删去多次)

    • 透过拷贝构造或赋值进行操作时,被拷贝的会自行变成NULL,复制所得的指针将取得资源的唯一所有权
  • 智能指针无法指向数组(因为其达成中调用的是delete而非delete[])
  • 智能指针不可能看做容器类的因素。

在C++0x中,auto_ptr已经不指出利用,将来应该会被其余3个智能指针所替代。

stoned:
15年下三个月从上一家商家离职的时候,曾经面临那样的采用,是找个垂直行业扎根进去,依旧做狭义的纯网络产品。从15年资本初冬开头,纯网络的创业机会更进一步窄。如@cicada
一样,我也没有啥样适当的关头扎根到某个垂直行业,所以我的惦记方向就改成了『纯网络产品创业是不是还有机会』。

边城的下元节,先是妇女、小孩子穿新衣。那倒也尤其,一般过年穿新衣,边城的人中秋节穿新衣,看来对节日很看重。

QScopedPointer 与 std::unique_ptr

它们概念上应当是是一模一样的。下边不再区分:

那是一个很接近auto_ptr的智能指针,它包裹了new操作符在堆上分配的动态目标,可以确保动态创设的对象在任哪天候都得以被正确地删除。但它的所有权更加严谨,无法转让,一旦拿到了对象的管理权,你就不可能再从它那里取回来。

无 论是QScopedPointer 还是 std::unique_ptr
都有着一个很好的名字,它向代码的阅读者传递了有目共睹的音讯:那些智能指针只可以在本功能域里接纳,不愿意被出让。因为它的正片构造和赋值操作都是私房的,那一点大家可以比较QObject及其派生类的目的哈。

用法 (来自Qt的manual):

考虑并未智能指针的情事,

 void myFunction(bool useSubClass)  {      MyClass *p = useSubClass ? new MyClass() : new MySubClass;      QIODevice *device = handsOverOwnership();       if (m_value > 3) {          delete p;          delete device;          return;      }       try {          process(device);      }      catch (...) {          delete p;          delete device;          throw;      }       delete p;      delete device;  }

俺们在那几个处理语句中一再书写delete语句,稍有不慎就会造成资源走漏。采取智能指针后,大家就足以将那一个分外处理语句简化了:

 void myFunction(bool useSubClass)  {      QScopedPointer<MyClass> p(useSubClass ? new MyClass() : new MySubClass);      QScopedPointer<QIODevice> device(handsOverOwnership());       if (m_value > 3)          return;       process(device);  }

另,大家一早先的例证,也是选用那七个指针的一流场馆了(出main函数功能域就将其针对性的目标销毁)。

留意:因为拷贝构造和赋值操作私有的,它也富有auto_ptr同样的“缺陷”——不可能用作容器的要素。

本身直接把纯互连网创业叫作互连网生意,不一致于传统的生意。纯互连网生意大体有如此几类,流量、广告、社交、娱乐、游戏(还有文化?)。

妇孙女童还要打扮自己,在额角上用雄黄蘸酒画个王字。那是一种仪式感,也是加入感。然后全茶峒城的人都在河边去看赛龙舟了。

QSharedPointer 与 std::shared_ptr

QSharedPointer 与 std::shared_ptr
行为最相仿原始指针,是最像指针的”智能指针”,应用范围比前边的关系的更广。

QSharedPointer 与 QScopedPointer
一样包裹了new操作符在堆上分配的动态目的,但它已毕的是引用计数型的智能指针
,可以被随便地拷贝和赋值,在随意的地点共享它,当没有代码应用(引用计数为0)它时才删除被装进的动态分配的目的。shared_ptr也得以高枕无忧地放
到专业容器中,并弥补了std::auto_ptr 和 QScopedPointer
因为更换语义而无法把指针作为容器元素的弱项。

流量属于小买卖,而且半数以上含有灰产性质。

整条河却唯有四艘龙舟在比赛,龙舟当属于分化寨子,因而便有了一份光荣和梦寐以求在其中。

QWeakPointer 与 std::weak_ptr

强引用类型的QSharedPointer已经尤其好用,为啥还要有弱引用的
QWeakPointer?

QWeakPointer 是为协作 QSharedPointer 而引入的一种智能指针,它更像是
QSharedPointer
的一个帮办(因为它不抱有普通指针的表现,没有重载operator*和->)。它的最大效益在于帮忙QSharedPointer 工作,像一个生人一样来考察资源的施用景况。

  • weak_ptr 首如果为了幸免强引用形成环状。摘自msdn中一段话:
    • A cycle occurs when two or more resources controlled by
      shared_ptr objects hold mutually referencing shared_ptr
      objects. For example, a circular linked list with three elements
      has a head node N0; that node holds a shared_ptr object that
      owns the next node, N1; that node holds a shared_ptr object
      that owns the next node, N2; that node, in turn, holds a
      shared_ptr object that owns the head node, N0, closing the
      cycle. In this situation, none of the reference counts will ever
      become zero, and the nodes in the cycle will not be freed. To
      eliminate the cycle, the last node N2 should hold a weak_ptr
      object pointing to N0 instead of a shared_ptr object. Since the
      weak_ptr object does not own N0 it doesn’t affect N0’s
      reference count, and when the program’s last reference to the
      head node is destroyed the nodes in the list will also be
      destroyed.
  • 在Qt中,对于QObject及其派生类对象,QWeakPointer有破例处理。它可以看作QPointer的替代品
    • 那种气象下,不须要QSharedPointer的留存
    • 效率比 QPointer 高

广告是大部分互连网商家的显现格局,找流量、卖广告是最基本的两件事。所以广大商店做着做着就把团结做成了一个广告集团。

待到赛事主要时,岸边喊声连天,河中锣鼓声,声声急催,梆梆梆的赶着鼓点与急雨缓可是气来,只把心提到嗓子眼上。

QSharedDataPointer

那是为同盟 QSharedData 完毕隐式共享(写时复制
copy-on-write))而提供的便民工具。

Qt中广大的类都使用了隐式共享技术,比如QPixmap、QByteArray、QString、…。而大家为团结的类落成隐式共享也很粗略,比如要完成一个
Employee类:

  • 概念一个只包罗一个数码成员(QSharedDataPointer<EmployeeData>)
    的 Employee 类

  • 咱俩要求的兼具数据成员放置于 派生自QSharedData的 EmployeeData类中。

切切实实落到实处看 QSharedDataPointer 的Manual,此处略

打闹一向算是一个独立的支行,很多网络集团有了流量,不满意于广告变现之后就起来做游戏。

龙舟赛完,当然是一阵喝彩。接着是捉鸭,城中的老板派兵把三十只绿头长颈大雄鸭,颈脖上缚了红布条子,放入河中,尽由人们去抓。何人的水性好,哪个人游泳赛过鸭子,谁泅水时间长,能幡然从水中钻出,猛然捉了鸭子,鸭子就归谁。

QExplicitlySharedDataPointer

那是为合作 QSharedData 已毕显式共享而提供的便宜工具。

QExplicitlySharedDataPointer 和 QSharedDataPointer
相当接近,可是它禁用了写时复制作用。那使得大家创造的对象更像一个指针。

一个事例,接前边的Employee:

 #include "employee.h"   int main()  {      Employee e1(1001, "Albrecht Durer");      Employee e2 = e1;      e1.setName("Hans Holbein");  }

写时复制技术导致:e1和e2有一致的工号,但有分歧名字。与大家愿意的不比,显式共享能够缓解这些难题,那也使得Employee本身更像一个指南针。

 

顺便看看google编码规范中对3个智能指针的提议:
scoped_ptr
Straightforward and risk-free. Use wherever appropriate.

auto_ptr
Confusing and bug-prone ownership-transfer semantics. Do not use.

shared_ptr
Safe with const referents (i.e. shared_ptr<const T> ).
Reference-counted pointers with non-const referents can occasionally be
the best design, but try to rewrite with single owners where possible.

交际和游戏在15年在此之前只是小打小闹,话题足,但死得很惨,活下来的都转做广告和游乐去了。

一转眼满河面都是鸭子,满河里都是人,满河里是水花,满河是红极一时的动静。岸上的人谈空说有,显得比河中捉鸭子的人还着急。

参考

其实到结尾,你会发现陌陌的发展史其实就是一个经文的纯网络产品创业的变迁史。从做流量、到卖广告、到做游戏、到现在做直播,也只有到近年来,陌陌才迎来了它的野史最高估值。

赛龙舟、捉鸭子,那两项事情一贯不停到天色向晚,人们才不舍的回了家,带着节日的喜庆和欢娱,走在返乡的旅途。

之所以,回答自己要好的题材,『纯网络产品创业是或不是还有机会?』

就如小说里写得:那样的日子,那样的赛事,已经高兴了这些地点三五十年了,并且仍将继承令那么些地点的人兴奋下去。

自己的答案是有,而且巨大。现在是纯互联网产品创业最好的机会,时间窗口大约在2-4年,时间窗口关闭之后,纯网络创业就像马云(马云(英文名:Jack Ma))所说,如电商一样成为一个基础产业(忘了原话)。但纯网络创业相对竞争也大,所以在那惨酷战场唯有真正的高品位玩家才能收走最终的筹码,产品好、商业意识强、创业者活好(流量、运营、市场)等等。

用今天的观点和传统来看,确切地说,用后天的情怀去过这么的节沐日,也会觉得了无趣味,即便那在土著人心中是热热闹闹欢悦的纪念日。


实则这么的回顾日,放在明日甚至会觉得没有多大趣味,才有四艘龙舟,是或不是展现孤零零。

leexz:
自己属于纯线上扎进垂直领域的了。现在在做一道办公空间的租用产品,在此之前待的都是纯线上的互连网商家。

穿新衣,在今天来说是太常常的作业,下了班,逛市场,顺手可能有意无意了某些件。上午穿一件新的,早上还足以再换一件。雄黄酒在额角上画个王字,今日的面具比画个字要来的丰盛,来的更是富有视觉冲击力。

刚来办公空间那一个小圈子,浑身不舒服(现在也不舒服)。每日和高管娘、中介、销售、空间运营打交道,心里总是有些放不下架子,那些架子不是身价,而是我觉着自己是做伟大上的网络产品的,和满大街都是的中介销售不属同流。可无法,根据过去线上的笔触做线下空间的线上产品,转化率、订单量就是上不去,得投机去做销售,自己去空间一个一个拜访掌握,自己去找客户一个一个聊,逐渐的才摸清门道。

加以河上抓鸭子又怎么乐趣,自己又不会泅水,捉鸭子的人和和气并不掌握。才30只鸭子,够不上成群结队,场地也不壮观。

这么些中给自身的感悟就是,做产品的人要有一些敬畏心,不要擅自用产品合计想着去改变行业的某些流程。(对这些如故有些不服气,仍然总想着改变,只不过不再冲动了,会学着明亮行业规则,利用规则逐步的迭代祥和的制品。)

如此的节日,边城的人为何过得那么霸气,那么和颜悦色,那么的惦念,年年如此呢,兴致不曾衰减。


奇迹想,大家的年味,大家节日的童趣偷跑去哪里了?大家怎么找它不回去吧?难道仅仅是物质丰富,娱乐至上的缘由呢?是一时发展太快,大家的心灵还不曾跟上社会震荡的旋律吗?

mien:
用作一个网络医疗创业公司的产品经营,格外同意垂直行业看缘分那么些观点。假设没有会合现近期的团协会,恐怕是不会拔取这一行,更不会挑选创业的。

各种人寻找欢畅的意思并未变,人心目标意趣没有变,人们渴望一个多彩的节日的希望并未变,但为什么过节简化成了市场优惠,亲朋好友间匆匆相见,越来越没有意思了呢?

当前的感想是想用互连网思维去颠覆或者说优化一个线下行业,越发是诊疗,必须树立在强硬的线下资源的功底上,以及必要求深刻精晓该行业的一些周转方式。前阵子按照现有领悟写出了一个相关方案,结果不久后发觉某大型公司出了一个相似度90%之上的方案。目瞪口呆.jpg。

咱俩不可能把节日没有意义,归纳为现在生存水平好了。物质条件好了,精神需求应该更高。传统的节日也应有不断,总不可能因为节日无趣,我们消减了节日吧。

一方面窃喜自己就像是找对了方向,另一方面也因为对手的兵不血刃感到触目惊心。

商讨边城的中秋节,那里的人,从遍地而来,甚至走很远的路,自己制作的新衣,精心调制的雄黄酒,好期待这一天的来临。他们具备浓浓的的仪式感和参加感。


或者这就是答案。

wanglongxi:
互连网+垂直行业=纯线上的网络产品+垂直行业的业务逻辑

咱俩与回想日少了一个参加感和仪式感,什么都是现成的,便利的,更是寻常化的,少了一份付出,自然不可以博取一份开心了。

那些中,纯线上的网络产品协助垂直行业的店家,扩展销售渠道,进步出名度,升高中间的人效。那么些逻辑里面临的战争是:扩张销售渠道挑衅传统销售渠道的功利,进步中间人效挑战拥有传统既得便宜。纯互连网集团去做那件事,很可能打不开渠道,饿死了就。寄托于传统商家做,因为挑衅了中间利益,长期被内部各样情状摁,摁死的可能大。

今日听朋友谈谈古琴。清朝原本男子弹琴的多。

所以最好是和门户那些小圈子的恋人共同做,大家网络人那时也没须求自带精晓垂直行业的效果,先做好纯线上的有的,然后再学习。

古人相聚,饮酒作诗,弹琴纵歌,一表非凡时,泼墨挥毫,一副隽永的册页就成了。


昨天的我们欢聚一堂,只会聊一些不痛不痒的闲天,看着人家的酒杯生怕她赖酒,然后醉醺醺,扶着饱胀的肚子晃荡在马路上,一点诗意也从没,一定情趣也绝非。

rex:
原本犬校做垂直行业的成品经营还真不少,我也分享部分经验,扎根教育垂直领域已经4年,用户量从0做到1500万,DAU240万,全中国40%的托儿所及家长在利用大家的成品。

节沐日没变,变得是大家,大家跟多的是少了一份生活的情趣。

1、垂直行业广大特点:
1)BAT看不上。
2)市场上当面的调研报告着力没用。
3)互连网属性的本行产品渗透率低。
4)存在刚需且频仍的要求。
5)线下比线上要主要得多。
6)服务比产品重点。
7)切入点不可能打破原来利益结构。
8)一切都是为了获得用户。
9)尽早尝试商业化和突显。
10)抓住紧要人的急需,疯狂的满意。

2、产品COO的市值
1)如何规划出满意重点人须要的产品。
2)怎么着布署出不损坏行业本来利益结构的制品。
3)如何设计出进步整个行业成效的制品。
4)怎么着运用互连网的优势给那么些行业创造新的价值。
5)怎么样通过产品的力量,让您的合营伙伴和自己公司赚到钱。

3、如何选用垂直行业
1)行业要向上空间巨大。
2)存在刚需且屡屡的普遍须求远非取得很好满意。
3)有从事过该行业的专家级用户伙伴。
4)有可以让产品快捷、大规模、低本钱增加的一块儿人。
5)做好吃苦3年的准备。

从互连网的发展趋势来看,未来几年,垂直行业的创业成功案例会更多。

相关文章