A. 程序员日均写7行代码试用期被开除,公司的行为是否属于违法
作为职场人,我们一定要多给自己留一个心眼儿,也多给自己留一条后路,毕竟工作只是谋生的一个方式,快乐生活才是最重要的。
B. 程序员35岁就被公司劝退,该怎么办
记住,被裁员,绝对跟年龄无关,只会跟你的实力有关系。
只是随着年龄的增大,一部分程序员就会被淘汰,从而引起淘汰率增加,让人有35岁以上就很难混的错觉。
35岁,上有老,下有小,想退休,嫌你小。
无论你是什么人,等到35岁,都会进入一个“滞胀期”,出现瓶颈。要么就是定位不清、要么就是倚老卖老,狂妄自大。
所以,我给已经步入35岁的上班族一个建议。
加强与职场新人的沟通
倚老卖老真的是大忌,一定要多多和新人沟通,别把自己推向落伍的盲流。
减少工作待遇的期望值
年轻时,工资从5000涨到8000,又从8000涨到10000,噌噌噌的往上涨。但是,35岁是是很容易走下路的年龄,工资涨幅通常会变低,趋于稳定,所以思想要跟得上。
重新做好职业规划,确定自己以后要干什么,然后朝着这个目标继续奋斗。
记住,不管是什么时候,都要勇于奋斗,否则你要面临的问题,可不是什么被裁这么简单了。
C. 程序员日均写7行代码被开除,公司随后被判违法解除劳动合同,如何解读
程序员日均写7行代码最后被公司开除,公司随后被判违法解决劳动合同。在这个案件中可以发现相关的信息,这就是对职员的一种不公平待遇。程序员的工作是受到法律保护的,这种解决劳动合同的方法是违法的。
最后通过法院的裁定,公司是认为证明陈淑媛在试用期这段时间并不符合录用的条件,只是单方的与其解除了劳动合同,但并没有事实依据,也没有法律依据,这种合同属于违法解除劳动的合同。最终根据法院的判决,公司需要支付作为程序员的劳动,赔偿金有36000元,并且要支付,证明程序员在2021年1月份到12月份期间的工资达到13241.37元,法律维护了证明程序员的合法权益。
D. 我一个程序员被公司间接辞退,我该怎么做
如果用人单位口头说要辞退你,你在没有接到正式书面通知(盖有公章)前,按时上班,或要求用人单位给你一个书面通知。如果仅凭用人单位口头说你明天不用来上班了,你就不来的话,到时用人单位会说是没有人说过不让你上班,是你自己旷工数日,按你自动离职处理了。
没找到新工作前,继续上班,公司还得给你发工资。公司就是想让你自己离开,不用支付经济补偿金。
E. 程序员被开除了会怎么样
名程序员抱怨的点就是自己已经被开除,工作也做了正常的交接,但是现在却以命令... 网友们看到后纷纷留言支招,其中有的网友说既然都被开除了,就没关系了,也就没必...
F. 程序员三十五岁之后被公司辞退,以后能干什么
对程序员来说,年龄是一个很大的门槛,年轻的程序员身体条件好,可以经常加班。就工资而言,年轻程序员的工资一般很少,公司支付较低的费用就可以雇用他们。年龄大的程序员工作年龄长,所以公司要支付的工资高,喜欢下班,公司老板就很不喜欢他们。所以对程序员来说,35岁是分割线。很多程序员到了35岁就会面临被裁掉的危险。
所以如果裁员,正好有时间考虑自己该做什么。如果再去人才市场面试,那也太没有竞争力了,可以和年轻人比,最好问问改变了的朋友。最好看看他们对新兴行业是否有好的看法,如果有,能不能和他们一起创业。当然,原来业界也可以根据自己的优势找到赚钱的地方。大家都可以试试
G. 我是刚刚毕业的程序员,工作了大概实习期加试用期有6个月,关于试用期被辞退的问题
1、如果劳动者签了个人辞职书:就是劳动者有试用期内主动解除合同了:这样的情况,公司只需给劳动者实际工作时间的工资、却不必给劳动者经济补偿。
2、如果劳动者不签:公司在试用期内解除合同,就必须拿出证据证明劳动者“不符合录用条件”。
(1)如果公司有这样的证据:公司是依法解除与你的劳动合同,要给劳动者实际工作时间的工资、却不必给劳动者经济补偿;
(2)如果公司拿不出证据证明劳动者“不符合录用条件”:就是公司违法解除合同,此时,如果劳动者要求继续履行合同,公司应当履行;如果劳动者不要求继续履行合同:公司应给劳动者经济补偿金的2倍作为赔偿,即:在劳动者工作不满3个月时,除给劳动者应得的实际工资外,还应给劳动者一个月的赔偿金。
法律依据是:
(1)《劳动合同法》第46条:“有下列情形之一的,用人单位应当向劳动者支付经济补偿:
(一)劳动者依照本法第38条规定解除劳动合同的;
(二)单位依照本法第36条规定向劳动者提出解除劳动合同并与劳动者协商一致解除劳动合同的;
(三)用人单位依照本法第四十条规定解除劳动合同的;
(四)用人单位依照本法第四十一条第一款规定解除劳动合同的;
(五)除用人单位维持或者提高劳动合同约定条件续订劳动合同,劳动者不同意续订的情形外,依照本法第四十四条第一项规定终止固定期限劳动合同的;
(六)依照本法第四十四条第四项、第五项规定终止劳动合同的;
(七)法律、行政法规规定的其他情形。
第37条:“劳动者提前三十日以书面形式通知用人单位,可以解除劳动合同。劳动者在试用期内提前三日通知用人单位,可以解除劳动合同。”
第39条:“劳动者有下列情形之一的,用人单位可以解除劳动合同:
(一)在试用期间被证明不符合录用条件的”。
【由上可知:劳动者依据第37条自己主动在试用期内辞职:没有经济补偿金;单位依据第39条在试用期内解除合同:没有补偿金】。
第48条:“【用人单位违反本法规定解除或者终止劳动合同】,劳动者要求继续履行劳动合同的,用人单位应当继续履行;劳动者不要求继续履行劳动合同或者劳动合同已经不能继续履行的,用人单位应当依照本法第八十七条规定支付赔偿金。”
第87条:“用人单位违反本法规定解除或者终止劳动合同的,应当依照本法第四十七条规定的经济补偿标准的二倍向劳动者支付赔偿金”
第47条:“经济补偿按劳动者在本单位工作的年限,每满一年支付一个月工资的标准向劳动者支付。六个月以上不满一年的,按一年计算;不满六个月的,向劳动者支付半个月工资的经济补偿。 ”
所谓“不符合录用条件”没有具体规定,我的理解主要是:
1、不符合公司招聘时对相应职位的要求
2、缺乏实际工作能力,经培训、调换岗位仍不能胜任的等等。
H. 程序员日均写7行代码试用期被开除,公司的这一行为合法吗
程序员日均写7行代码试用期被开除,公司的行为已经涉嫌违法犯罪。要知道公司认为员工的工作量不饱和,可是公司安排的工作强度已经超出了预想。员工没有将工作按时的完成,并不是自己一个原因,是因为公司的做法极其的不合理。据法律法规得知公司在开除员工的时候,不能因为个人出现的问题,并将所有的罪责都挂在自己的头上。公司要根据实际的情况给员工一定的赔偿,否则的话两个人可能要法庭上相见。
总的来说作为一个职场人,平时一定要给自己多留一个心眼,要学会给己留有一席之地。工作只是谋生的一个方式,快快乐乐的生活才是一个最好的选择。每个人都要以此事为例,要逐渐的适应工作当中的科学难度。不要在这上面能做一个傻白甜,那最终伤害的人便是自己。因为余情于理对方都应该对其相应的劳务进行支付,所以不要让对方试图凌驾于法律之上。
I. 41岁程序员被辞退,家人引荐到居委会工作,收入以为看错了,怎么回事
41岁程序员最终被单位辞退之后,家人引荐到居委会工作。这一名程序员看到收入的时候,他还以为看错了主要是因为他看到居委会的工作收入太低了。因为居委会的工作收入,一个月仅仅只有5000元,跟他之前在IT行业工作的工资,存在着天壤之别。
这名男子一开始看到居委会工资的时候,之所以会以为看错了,主要是因为居委会的工资太低了。因为男子一直以来都是在IT行业工作的,而且他的工资都是以万为单位的,他没想到自己在40多岁的时候领到的工资才5000多。所以,当这名男子看到居委会工资的时候,露出了惊讶的表情,甚至一度以为自己看错了。
总而言之,这程序员之所以会沦落到要去居委会工作主要是因为证明程序员的年纪太大了,导致他没有办法找到程序员方面的工作。而当他看到居委会工资的时候,以为看错了是因为居委会工作的工资仅仅只有5000,他觉得太低了。
J. 程序员新人周一优化一行代码,周三被劝退
这周一,公司新来了一个同事,面试的时候表现得非常不错,各种问题对答如流,老板和我都倍感欣慰。
这么优秀的人,绝不能让他浪费一分一秒,于是很快,我就发他了需求文档、源码,让他先在本地熟悉一下业务和开发流程。
结果没想到,周三大家一块 review 代码的时候就发现了问题,新来的同事直接把原来 @Transactional 优化成了这个鬼样子:
就因为这一行代码,老板(当年也是一线互联网大厂的好手)当场就发飙了,马上就要劝退这位新同事,我就赶紧打圆场,毕竟自己面试的人,不看僧面看佛面,是吧?于是老板答应我说再试用一个月看看。
会议结束后,我就赶紧让新同事复习了一遍事务,以下是他自己做的总结,还是非常详细的,分享出来给大家一点点参考和启发。相信大家看完后就明白为什么不能这样优化 @Transactional 注解了,纯属画蛇添足和乱用。
事务在逻辑上是一组操作, 要么执行,要不都不执行 。主要是针对数据库而言的,比如说 MySQL。
只要记住这一点,理解事务就很容易了。在 java 中,我们通常要在业务里面处理多个事件,比如说编程喵有一个保存文章的方法,它除了要保存文章本身之外,还要保存文章对应的标签,标签和文章不在同一个表里,但会通过在文章表里(posts)保存标签主键(tag_id)来关联标签表(tags):
那么此时就需要开启事务,保证文章表和标签表中的数据保持同步,要么都执行,要么都不执行。
否则就有可能造成,文章保存成功了,但标签保存失败了,或者文章保存失败了,标签保存成功了——这些场景都不符合我们的预期。
为了保证事务是正确可靠的,在数据库进行写入或者更新操作时,就必须得表现出 ACID 的 4 个重要特性:
其中,事务隔离又分为 4 种不同的级别,包括:
需要格外注意的是: 事务能否生效,取决于数据库引擎是否支持事务,MySQL 的 InnoDB 引擎是支持事务的,但 MyISAM 就不支持 。
1)编程式事务
编程式事务是指将事务管理代码嵌入嵌入到业务代码中,来控制事务的提交和回滚。
你比如说,使用 TransactionTemplate 来管理事务:
再比如说,使用 TransactionManager 来管理事务:
就编程式事务管理而言,Spring 更推荐使用 TransactionTemplate。
在编程式事务中,必须在每个业务操作中包含额外的事务管理代码,就导致代码看起来非常的臃肿,但对理解 Spring 的事务管理模型非常有帮助。
当然了,要想实现事务管理和业务代码的抽离,就必须得用到 Spring 当中最关键最核心的技术之一,AOP,其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,执行完目标方法之后根据执行的情况提交或者回滚。
Spring 将事务管理的核心抽象为一个事务管理器(TransactionManager),它的源码只有一个简单的接口定义,属于一个标记接口:
通过 PlatformTransactionManager 这个接口,Spring 为各个平台如 JDBC(DataSourceTransactionManager)、Hibernate(HibernateTransactionManager)、JPA(JpaTransactionManager)等都提供了对应的事务管理器,但是具体的实现就是各个平台自己的事情了。
参数 TransactionDefinition 和 @Transactional 注解是对应的,比如说 @Transactional 注解中定义的事务传播行为、隔离级别、事务超时时间、事务是否只读等属性,在 TransactionDefinition 都可以找得到。
返回类型 TransactionStatus 主要用来存储当前事务的一些状态和数据,比如说事务资源(connection)、回滚状态等。
TransactionDefinition.java:
Transactional.java
说到这,我们来详细地说明一下 Spring 事务的传播行为、事务的隔离级别、事务的超时时间、事务的只读属性,以及事务的回滚规则。
当事务方法被另外一个事务方法调用时,必须指定事务应该如何传播 ,例如,方法可能继续在当前事务中执行,也可以开启一个新的事务,在自己的事务中执行。
TransactionDefinition 一共定义了 7 种事务传播行为:
01、 PROPAGATION_REQUIRED
这也是 @Transactional 默认的事务传播行为,指的是如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。更确切地意思是:
这个传播行为也最好理解,aMethod 调用了 bMethod,只要其中一个方法回滚,整个事务均回滚。
02、 PROPAGATION_REQUIRES_NEW
创建一个新的事务,如果当前存在事务,则把当前事务挂起。也就是说不管外部方法是否开启事务,Propagation.REQUIRES_NEW 修饰的内部方法都会开启自己的事务,且开启的事务与外部的事务相互独立,互不干扰。
如果 aMethod()发生异常回滚,bMethod()不会跟着回滚,因为 bMethod()开启了独立的事务。但是,如果 bMethod()抛出了未被捕获的异常并且这个异常满足事务回滚规则的话,aMethod()同样也会回滚。
03、 PROPAGATION_NESTED
如果当前存在事务,就在当前事务内执行;否则,就执行与 PROPAGATION_REQUIRED 类似的操作。
04、 PROPAGATION_MANDATORY
如果当前存在事务,则加入该事务;如果当前没有事务,则抛出异常。
05、 PROPAGATION_SUPPORTS
如果当前存在事务,则加入该事务;如果当前没有事务,则以非事务的方式继续运行。
06、 PROPAGATION_NOT_SUPPORTED
以非事务方式运行,如果当前存在事务,则把当前事务挂起。
07、 PROPAGATION_NEVER
以非事务方式运行,如果当前存在事务,则抛出异常。
3、4、5、6、7 这 5 种事务传播方式不常用,了解即可。
前面我们已经了解了数据库的事务隔离级别,再来理解 Spring 的事务隔离级别就容易多了。
TransactionDefinition 中一共定义了 5 种事务隔离级别:
通常情况下,我们采用默认的隔离级别 ISOLATION_DEFAULT 就可以了,也就是交给数据库来决定,可以通过 SELECT @@transaction_isolation; 命令来查看 MySql 的默认隔离级别,结果为 REPEATABLE-READ,也就是可重复读。
事务超时,也就是指一个事务所允许执行的最长时间,如果在超时时间内还没有完成的话,就自动回滚。
假如事务的执行时间格外的长,由于事务涉及到对数据库的锁定,就会导致长时间运行的事务占用数据库资源。
如果一个事务只是对数据库执行读操作,那么该数据库就可以利用事务的只读属性,采取优化措施,适用于多条数据库查询操作中。
这是因为 MySql(innodb)默认对每一个连接都启用了 autocommit 模式,在该模式下,每一个发送到 MySql 服务器的 SQL 语句都会在一个单独的事务中进行处理,执行结束后会自动提交事务。
那如果我们给方法加上了 @Transactional 注解,那这个方法中所有的 SQL 都会放在一个事务里。否则,每条 SQL 都会单独开启一个事务,中间被其他事务修改了数据,都会实时读取到。
有些情况下,当一次执行多条查询语句时,需要保证数据一致性时,就需要启用事务支持。否则上一条 SQL 查询后,被其他用户改变了数据,那么下一个 SQL 查询可能就会出现不一致的状态。
默认情况下,事务只在出现运行时异常(Runtime Exception)时回滚,以及 Error,出现检查异常(checked exception,需要主动捕获处理或者向上抛出)时不回滚。
如果你想要回滚特定的异常类型的话,可以这样设置:
以前,我们需要通过 XML 配置 Spring 来托管事务,有了 Spring Boot 之后,一切就变得更加简单了,只需要在业务层添加事务注解( @Transactional )就可以快速开启事务。
也就是说,我们只需要把焦点放在 @Transactional 注解上就可以了。
虽然 @Transactional 注解源码中定义了很多属性,但大多数时候,我都是采用默认配置,当然了,如果需要自定义的话,前面也都说明过了。
1)要在 public 方法上使用,在类的computeTransactionAttribute方法中有个判断,如果目标方法不是public,则TransactionAttribute返回null,即不支持事务。
2)避免同一个类中调用 @Transactional 注解的方法,这样会导致事务失效。
在测试之前,我们先把 Spring Boot 默认的日志级别 info 调整为 debug,在 application.yml 文件中 修改:
然后,来看修改之前查到的数据:
开搞。在控制器中添加一个 update 接口,准备修改数据,打算把沉默王二的狗腿子修改为沉默王二的狗腿:
在 Service 中为方法加上 @Transactional 注解并抛出运行时异常:
按照我们的预期,当执行 save 保存数据后,因为出现了异常,所以事务要回滚。所以数据不会被修改。
在浏览器中输入 http://localhost:8080/user/update 进行测试,注意查看日志,可以确认事务起效了。
当我们把事务去掉,同样抛出异常:
再次执行,发现虽然程序报错了,但数据却被更新了。
这也间接地证明,我们的 @Transactional 事务起效了。
看到这,是不是就明白为什么新同事的优化纯属画蛇添足/卵用了吧?